如何在C中找到1到1百万的总和?

时间:2017-04-03 22:48:00

标签: c

如何在C中找到1到1百万的总和?我尝试使用无符号长long数据类型(我的代码如下)但打印500,000,000,000。正确的值是500,000,500,000

unsigned long long sum = 0;
for(int i=0;i<1000000;i++)
    sum += (unsigned long long)i;
printf("%llu",sum);

3 个答案:

答案 0 :(得分:4)

这应该给你正确答案。在您的示例中,您找到的总和为0到999,999。我也为你删除了不必要的演员。

unsigned long long sum = 0;

for (unsigned long long i = 1; i <= 1000000; i++) sum += i;

printf("%llu", sum);

答案 1 :(得分:1)

你总结了从0到999999的所有数字。你的结果是一些奇怪的Kinde。

有了这个,你应该得到正确的一个:

unsigned long long sum=0;
for(unsigned long long i=1;i<=1000000;i++){
    sum+=i;
}

答案 2 :(得分:1)

天真方法的效率太可怕了!您应该使用从 0 到 n 的整数之和为 n(n+1)/2 的性质。