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

时间:2019-03-26 16:32:04

标签: java loops sum

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

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

     int sum = 0;

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

     return sum;
}      

8 个答案:

答案 0 :(得分:3)

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

sum += i;

或者,您可以将其视为数学问题,并使用sum of an arithmetic progression的公式:

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

答案 1 :(得分:2)

您可以使用IntStream中的sum

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

答案 2 :(得分:2)

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

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

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

答案 3 :(得分:1)

您要覆盖每个循环的var sum,而忘记求和,您需要将代码更改为以下内容:

html,body {
  width: 100%;
  height: 100vh;
  margin: 0 auto;
  padding: 0;
  background-color: dimgray;
}

nav{
  background-color: aqua;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  display: flex;
}

.logo{
  padding: 10px;
}

.nav-wrapper{
  margin-left: auto;
}

ul {
  display: flex;
}

li{
  list-style: none;
}

a{
display: block;
padding: 10px;
}

答案 4 :(得分:1)

因为您希望从0到n,所以可以使用IntStream例如

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

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

param是给定的数字。

答案 7 :(得分:0)

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

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;