在数学中,自然数都是用于计数的正数,如1、2、3、4等。最小的自然数是 1。
目标: 编写一个 Java 程序,返回从 1 到给定自然数 n 的自然数的平方和。 , (12 + 22 + 32 + ... + n2).
方法一:使用while循环
下面的例子展示了如何使用while循环计算前n个自然数的平方和.
public class MyClass {
public static void main(String[] args) {
int n = 10;
int i = 1;
int sum = 0;
//计算1到n的平方和
while(i <= n) {
sum += i*i;
i++;
}
System.out.println("Sum is: " + sum);
}
}
上面的代码将给出以下输出:
Sum is: 385
方法2:使用for循环
使用for也可以实现同样的效果环形。考虑下面的示例:
public class MyClass {
public static void main(String[] args) {
int n = 10;
int sum = 0;
//计算1到n的平方和
for(int i = 1; i <= n; i++)
sum += i*i;
System.out.println("Sum is: " + sum);
}
}
上面的代码将给出以下输出:
Sum is: 385
方法 3:使用递归
同样,递归可以
public class MyClass {
//递归方法
static int Sum(int n) {
if(n == 1)
return 1;
else
return (n*n + Sum(n-1));
}
public static void main(String[] args) {
System.out.println("Sum of Squares of first 10 natural numbers: " + Sum(10));
System.out.println("Sum of Squares of first 20 natural numbers: " + Sum(20));
}
}
上面的代码将给出以下输出:
Sum of Squares of first 10 natural numbers: 385
Sum of Squares of first 20 natural numbers: 2870
方法4:使用数学公式
前 n 个自然数的平方和可以在数学上表示为:
public class MyClass {
public static void main(String[] args) {
int n = 10;
//计算1到n的平方和
int sum = n*(n+1)*(2*n+1)/6;
System.out.println("Sum is: " + sum);
}
}
上面的代码将给出以下输出:
Sum is: 385