在数学中,自然数都是用于计数的正数,如1、2、3、4等。最小的自然数是 1。
目标: 编写一个 Java 程序,返回从 1 到给定自然数 n 的自然数之和,(1 + 2 + 3 + ... + n).
方法一:使用 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++;
}
System.out.println("Sum is: " + sum);
}
}
上面的代码将给出以下输出:
Sum is: 55
方法 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;
System.out.println("Sum is: " + sum);
}
}
上面的代码将给出以下输出:
Sum is: 55
方法 3:使用递归
同样,递归可以
public class MyClass {
//递归方法
static int Sum(int n) {
if(n == 1)
return 1;
else
return (n + Sum(n-1));
}
public static void main(String[] args) {
System.out.println("Sum of first 10 natural numbers: " + Sum(10));
System.out.println("Sum of first 20 natural numbers: " + Sum(20));
}
}
上面的代码将给出以下输出:
Sum of first 10 natural numbers: 55
Sum of first 20 natural numbers: 210
方法4:使用数学公式
前 n 个自然数的和可以在数学上表示为:
public class MyClass {
public static void main(String[] args) {
int n = 10;
//计算1到n的和
int sum = n*(n+1)/2;
System.out.println("Sum is: " + sum);
}
}
上面的代码将给出以下输出:
Sum is: 55