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

Write a program that adds together all the numbers between 0 and 100. Print the result

我想编写一个程序,将 0 到 100 之间的所有数字相加,但我的代码没有正确地添加所有数字。如何将下一个数字与数字相加,然后打印总和?

这是我的代码:

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

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

你得到这个奇怪结果的原因是你将这些数字添加到 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