为我的计算机科学课做一项作业,并且无法弄清楚我做错了什么。我必须编写一个程序,将所有正方形添加到1到100之间(1,4,9,16,25,36,49,64,81,100)作为作业的一部分,我需要使用"而"声明,所以没有"因为"陈述会有所帮助。我目前的代码如下。
import java.util.Scanner;
public class While42B {
public static void main(String []args ) {
Scanner reader = new Scanner(System.in);
int n = 1;
int sum = 0;
while (n <= 100) {
n = (n*n);
n++;
sum = (sum + n);
}
System.out.println(sum);
}
}
我从GUI获得的回报是
710
非常感谢任何帮助,谢谢!
答案 0 :(得分:13)
看看这句话:
n = (n*n);
您在循环中对n
进行平方,然后递增它。请改为:
while (n <= 10) {
sum = (sum + (n*n));
n++;
}
这样,您不会通过对其进行修改来修改n
,并且可以正确跟踪其while循环的值。
答案 1 :(得分:9)
我意识到你正在寻找一个while循环但是 仅供参考,您可以使用直接公式:
System.out.println( n * (n + 1) * (2 * n + 1) / 6);
答案 2 :(得分:5)
就像附加组件一样,在Java 8中,可以使用前10个自然数的平方和,如下所示:
int sum = IntStream.rangeClosed(1, 10).map(n -> n * n).sum();
答案 3 :(得分:4)
如果你想以你的方式做,我的意思是首先将每个数字的值加起来,将其保存在变量中并将其添加到总和中,您可以使用different variable
代替n
来存储每个数字的平方值,如下所示:
int n = 1;
int squareValue;
int sum = 0;
while (n <= 10) {
squareValue= (n*n);
sum += squareValue;
n++;
}
System.out.println(sum);
答案 4 :(得分:3)
您正在更改n的值:n = n * n 所以现在你没有从1到100循环,你正在跳过很多数字
答案 5 :(得分:-1)
只需阅读数学,然后继续将数学运算转化为代码。 我已经研究出了我希望可以帮助你的数学。我也回答了你教授提出的问题,我希望我能帮助你安排。除了Carl Friedrich Gauss之外,不需要任何信用。
X(nsquared base 1 + nsquared base n)除以2
X等于数字(100),n base 1等于第一个数字(1),n base n等于最后一个数字(100),我没有在数字描述中包括方块,但你确实需要包含方块第一个和最后一个数字。 1平方和100平方。