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