试试下面的代码
//1^2+2^2+3^2+...+n^2<1000
//可利用公式 1^2+2^2+3^2+...+n^2=n(n+1)(2n+1)/6
#include<stdio.h>
int CalcMaxN(int sum)
{
int i = 0;
for (i=0; i < sum; i++)
{
if (i*(i+1)*(2*i+1)/6 > sum)
{
break;
}
}
return i - 1;
}
int main()
{
int min = CalcMaxN(1000);
printf("min is: %d\n", min);
getchar();
return 0;
}