Java 1和100之间的所有平方之和?

Java 1和100之间的所有平方之和?,java,Java,我正在为我的计算机科学课做作业,却不知道我做错了什么。我必须编写一个程序,将1和100(1,4,9,16,25,36,49,64,81,100)之间的所有平方相加,作为作业的一部分,我需要使用“while”语句,所以没有“for”语句会有帮助。我目前的代码如下 import java.util.Scanner; public class While42B { public static void main(String []args ) { Scanner reader

我正在为我的计算机科学课做作业,却不知道我做错了什么。我必须编写一个程序,将1和100(1,4,9,16,25,36,49,64,81,100)之间的所有平方相加,作为作业的一部分,我需要使用“while”语句,所以没有“for”语句会有帮助。我目前的代码如下

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);
    }
}
import java.util.Scanner;
公共类While42B{
公共静态void main(字符串[]args){
扫描仪阅读器=新扫描仪(System.in);
int n=1;
整数和=0;

(n请看这句话:

n = (n*n);
您正在循环中对
n
进行平方运算,然后对其进行递增。请改为执行以下操作:

while (n <= 10) {
    sum = (sum + (n*n)); 
    n++;
}

while(n您正在更改n in:n=n*n的值

因此,现在不是从1循环到100,而是跳过了许多数字

就像一个附加组件一样,在Java 8中,可以按如下方式计算前10个自然数的平方和:

int sum = IntStream.rangeClosed(1, 10).map(n -> n * n).sum();

我知道你在找一个循环,但是
仅供参考,您可以使用直接公式:


System.out.println(n*(n+1)*(2*n+1)/6);

如果你想按照你的方式来做,我的意思是首先将每个数字的值平方,将其保存在一个变量中,并将其添加到总和中。你可以使用一个
不同的变量,而不是
n
来存储每个数字的平方值,如下所示:

int n = 1;
int squareValue;
int sum = 0;
while (n <= 10) {

    squareValue= (n*n);

    sum += squareValue; 

    n++;
}
System.out.println(sum);
int n=1;
整数平方值;
整数和=0;

而(n只需阅读数学,然后继续将数学运算转换为代码。 我已经算出了数学,希望能对你有所帮助。我还回答了你教授提出的问题。我真的希望我能对你的安排有所帮助。除了卡尔·弗里德里希·高斯,不需要任何学分

X(n平方基1+n平方基n)除以2

X等于数字的个数(100),n基1等于第一个数字(1),n基n等于最后一个数字(100),我没有在数字描述中包括正方形,但你也需要在第一个和最后一个数字中包括正方形。1平方和100平方

  • 按照PEMDAS(操作顺序)进行这些操作
  • 我没有足够高的声誉,所以我不能发布照片,对此表示抱歉,我希望这一切都能有所帮助
  • 答案是(500050)

这是一个非常快速的回答,令人印象深刻。谢谢,它相当快,不过说实话,我不喜欢FGITW的答案。@JBNizet谢谢,修复了。@mellamokb您尝试进行的编辑不正确,因为它会加起来
1,4,9,…,99^2,10000
@hexafrance:哎哟,我看错了问题。很抱歉。现在看起来不错:)仍然+1表示不同的答案。这个公式给出了1和n^2之间的平方和,而不是1和n之间的平方和。啊,修正了它,我还必须将n限制为10,谢谢!