如何在java中取平方和?

时间:2016-02-10 16:04:41

标签: java

所以我是java的初学者,我只是在学习循环概念。我的一个任务是修改下面的代码,以便打印出值的平方和,而不仅仅是值的总和:

Scanner scan = new Scanner(System.in);
System.out.println("Enter two numbers");
System.out.println("Separate with spaces");
System.out.println("Code sums from first to second");
int first = scan.nextInt();
int second = scan.nextInt();
int sum = 0;
for(int i = first; i <= second; i++)
{
sum += (i);
}
System.out.print("Sum from "+ first +" to " + second );
System.out.println(" is " + sum);`

显然我只需修改此代码的一行。我试过了:

Scanner scan = new Scanner(System.in);
System.out.println("Enter two numbers");
System.out.println("Separate with spaces");
System.out.println("Code sums from first to second");
int first = scan.nextInt();
int second = scan.nextInt();
int sum = 0;
for(int i = first; i <= second; i++)
{
sum += (i^2);
}

我认为如果你只是在括号内添加i ^ 2值它会起作用,但事实并非如此。任何关于我如何做这方面的帮助/任何有关理解循环如何工作的帮助将非常感激。

3 个答案:

答案 0 :(得分:1)

正如评论所说,

i^2更改为i*i

Scanner scan = new Scanner(System.in);
System.out.println("Enter two numbers");
System.out.println("Separate with spaces");
System.out.println("Code sums from first to second");
int first = scan.nextInt();
int second = scan.nextInt();
int sum = 0;
for(int i = first; i <= second; i++)
{
sum += (i*i);
}

答案 1 :(得分:0)

我在这里应用了n个项的平方和的公式,并且在这里减去了我使用n *(n + 1)*(2 * n + 1)/ 6公式的第一个公式而没有循环性能o(1)

sum = (second*(second+1)*((2*second)+1))/6 - (first*(first+1)*((2*first)+1))/6;

答案 2 :(得分:0)

只需更改

sum += (i);

sum += (i*i);