所有方格的总和在1到100之间?

时间:2014-04-03 21:37:33

标签: java

为我的计算机科学课做一项作业,并且无法弄清楚我做错了什么。我必须编写一个程序,将所有正方形添加到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

非常感谢任何帮助,谢谢!

6 个答案:

答案 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平方。

  • 根据PEMDAS(操作顺序)执行这些操作。
  • 我没有足够高的声誉,所以我无法发布照片,对不起,我希望这一切都有所帮助。
  • 答案是(500,050)