有个简单问题
如题:S1=1,S2=1+3,S3=1+3+5,S4=1+3+5+7,……,SN=1+3+5+7+……+(2N-1),N为正整数。编程求S1+S2+S3+S4+……+SN的值小于20000时的N的最大值。我是这样做的:
#include<stdio.h>
void main()
{
int sum1=0,sum2=0,N;
for(N=1;N<=2000;N=N+2)
{ sum1+=N; sum2+=sum1; if(sum2>20000) break; }
printf("%d,%d\n",sum2,(N+1)/2);
getch();
}
但有一个问题,就是如果 sum2很接近20000时,执行循环,但循环过后,sum2为20540,大于20000了,N也错了,应为38.怎样解决这个问题呢?