如果要效率的话,数学推导最快:
((1+n)*n)/2>1000
=>n*n + n > 2000
=>n*n + n + 1/4 > 2000 + 1/4
=>(n + 1/2)^2 > 2000.25 (n > 0)
n + 1/2 > (2000.25)^(1/2)
n > (2000.25)^(1/2) - 1/2
即n > 44.224
n = 45
累加和:45*46/2 = 45*23 = 1035
所以可以写
#include
int main()
{
printf("n = 45, sum = 1035\n");
return 0;
}
:D
以上,虽然有点开玩笑的意思,但是,其实真正编程解决问题的时候,能用数学推导出结果的,就不要用程序去计算,这样才能提高 程序效率。
我只能回答你数学的算法。需要吗?