编写一个程序,将0到100之间的所有数字相加。打印结果

时间:2019-03-30 18:00:19

标签: loops for-loop processing

我想编写一个程序,将所有0到100之间的数字相加,但是我的代码无法正确添加所有内容。如何在数字上添加下一个数字,然后打印总和?

这是我的代码:

         for(int i = 0; i <= 100; i++){
           i+=i;
           println(i);
         }

结果显示为0、2、6、14 ...,我需要从1到100的所有数字之和。

1 个答案:

答案 0 :(得分:3)

得到这个奇怪结果的原因是,您将这些数字加到了i上,而不是拥有专用的收集器。

int collector = 0;
for (int i = 0; i <= 100; i++) {
       collector += i;
       println(collector);
}

如果只想打印一次总和,请将println(collector)表达式移到循环外。

还有一个数学公式可以直接计算前n个数字的总和

Sum(1, n) = n * (n+1) / 2

处理中:

int Sum(int n){
  return n * (n + 1) / 2;
}

formula works是因为数字1到N可以像这样重新排列和添加:

 (1 + N) + (2 + N-1) + (3 + N-2) + . . . . + (N + N/2+1) = total

对于N = 100:

 (1 + 100) + (2 + 99) + (3 + 98) + . . . . + (50 + 51) = 5050
   101     +   101    +   101    + . . . . +    101    = 5050
相关问题