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 ...