Java 添加0到100之间的数字 intx=-1; int y=0; 而(x

Java 添加0到100之间的数字 intx=-1; int y=0; 而(x,java,loops,while-loop,Java,Loops,While Loop,从0到n的数字之和的公式是n*(n+1)/2。通过将序列对折很容易证明: int x = -1; int y = 0; while(x<100) { x++; y+=x; System.out.println(y); } 注意,每对加起来等于n,并且有(n+1)/2这样的对。[1] 使用n=100的公式,我们得到100*101/2=5050,因此是的,您的答案是正确的 或者,您可以让Wolfram Alpha为您完成以下工作: 就您的代码而言,可以使用for循环来

0
n
的数字之和的公式是
n*(n+1)/2
。通过将序列对折很容易证明:

int x = -1;
int y = 0;
while(x<100)
{
    x++;
    y+=x;
    System.out.println(y);
}
注意,每对加起来等于
n
,并且有
(n+1)/2
这样的对。[1]

使用
n=100
的公式,我们得到
100*101/2=5050
,因此是的,您的答案是正确的

或者,您可以让Wolfram Alpha为您完成以下工作:

就您的代码而言,可以使用
for
循环来更明确地表示算法,而不是
while
(或者您可以使用上面的公式,完全避免循环)


[1] 严格地说,我们必须分别对待奇数和偶数
n
,但我简化了一点。

是的,答案是正确的。0+1+2+…+100=5050

你应该用笔和纸来验证它,最多
n
n*(n+1)/2
所以数字加起来是5050Ah,但你没有加0!无论如何,这似乎是离题的,因为这是关于数学/确认程序的有效性…高斯在两个世纪前就用纸和笔来总结这些。现在我们很难写一个循环。我的老师让我使用while循环,而不是no循环t对于loopsBTW,如果您不需要查看所有中间值,则可以将打印移出循环。这样运行速度也会更快,但您不会注意到这个简单示例中的差异。
 0   1   2   3   4  ...
 n  n-1 n-2 n-3 n-4 ...