繁体   English   中英

如何计算从0到n的所有数字的总和?

[英]How do I calculate the sum of all numbers from 0 to n?

因此,我试图通过循环来计算从0到给定数字(n)的所有数字,如我的代码所示,但我似乎无法管理如何。

public static int sumOfNumbers(int... params) {

     int sum = 0;

     for (int i : params) {
         sum = i;
     };

     return sum;
}      

您正在覆盖sum ,而不是相加。 您应该使用+=运算符而不是=运算符:

sum += i;

另外,您也可以将其视为数学问题,然后将该公式用于算术级数总和

public static int sumZeroToN(int n) {
    return n * (n + 1) / 2;
}

你可以使用sumIntStream

return Arrays.stream(params).sum();

这是一个系列中数字的总和,因此您可以使用以下命令在O(1)中进行操作:

int sum = n * (n + 1) / 2;

其中nparams的最高数字, params是从0n的数字的数组/集合。

您正在覆盖每个循环的var sum,而忘记了求和,您需要将代码更改为如下所示:

public static int sumOfNumbers(int... params) {

    int sum = 0;

    for (int i : params) {
        sum += i; //Same as sum = sum + 1;
    };

    return sum;
}

由于您希望从0到n,因此可以使用IntStream例如

IntStream.rangeClosed(0, n).sum()

int sum = 0;
for (int i = 0; i <= n; i++) {
 sum = sum + i;
}
System.out.println(sum);

您正在尝试计算算术级数和,因此无需循环即可执行此操作:

sum =(((param + 1)* param)/ 2;

param是给定的数字。

用于循环,而不是用于每个循环! 对于每个循环,请使用一个列表。

int sum = 0;
for(int i=0; i<n; i++) {
   sum += i // same as sum = sum + i;
}
return sum;

或简单地使用:

int sum = n * (n + 1) / 2;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM