使用 For 循环、While 循环、函数和递归编写一个 Java 程序来查找 N 个自然数的和,并附带示例。
Java 程序使用 For 循环查找 N 个自然数的和
此程序允许用户输入任何整数值(最大限制值)。接下来,该程序使用 For 循环计算从 1 到最大限制值的 N 个自然数的总和。
import java.util.Scanner;
public class SumOfNaturalNumbers1 {
private static Scanner sc;
public static void main(String[] args)
{
int number, i, sum = 0;
sc = new Scanner(System.in);
System.out.print(" Please Enter any Number : ");
number = sc.nextInt();
for(i = 1; i <= number; i++)
{
sum = sum + i;
}
System.out.println("\n The Sum of Natural Numbers from 1 to "+ number + " = " + sum);
}
}

用户输入的数值:number = 6
首先,我们使用 For 循环迭代从 1 到最大值(此处,number = 6)。
For 循环第一次迭代: for(i = 1; i <= 6; i++)。条件为真。
sum = sum + i
sum = 0 + 1 = 1
第二次迭代: (i = 2; 2 <= 6; 2++)。所以,sum = 1 + 2 = 3
第三次迭代: (i = 3; 3 <= 6; 3++)。所以,sum = 3 + 3 = 6
第四次迭代: (i = 4; 4 <= 6; 4++)。所以,sum = 6 + 4 = 10
第五次迭代: (i = 5; 5 <= 6; 5++)。所以,sum = 10 + 5 = 15
第六次迭代: (i = 6; 6 <= 6; 6++)。所以,sum = 15 + 6 = 21
第七次迭代: (i = 7; 7 <= 6; 7++)。条件 (7 <= 6) 为假。因此,Java 编译器退出 For 循环。
Java 程序使用 While 循环查找 N 个自然数的和
此程序用于计算 N 个自然数的和,与上面的程序相同,但这次我们使用的是 While 循环。
import java.util.Scanner;
public class Example2 {
private static Scanner sc;
public static void main(String[] args)
{
int number, i = 1, sum = 0;
sc = new Scanner(System.in);
System.out.print(" Please Enter any : ");
number = sc.nextInt();
while(i <= number)
{
sum = sum + i;
i++;
}
System.out.println("\n The Result from 1 to "+ number + " = " + sum);
}
}
Please Enter any : 10
The Result from 1 to 10 = 55
Java 程序使用函数查找 N 个自然数的和
级数和 1 + 2+ 3+ … + N = N * (N + 1) / 2 的数学公式。在此程序中,我们创建了一个单独的方法来计算自然数的和。
在函数中,我们使用 If Else 语句 来检查数字是否等于零。如果为真,则 N 个自然数的和 = 0。否则,它执行 N * (N + 1) / 2
import java.util.Scanner;
public class Example3 {
private static Scanner sc;
public static void main(String[] args)
{
int number, sum = 0;
sc = new Scanner(System.in);
System.out.print(" Please Enter any Number : ");
number = sc.nextInt();
sum = SNat(number);
System.out.println("\n The Sum of Natural Numbers from 1 to "+ number + " = " + sum);
}
public static int SNat(int num)
{
if(num == 0)
{
return num;
}
else
{
return (num * (num + 1)/2);
}
}
}

Java 程序使用递归方法计算 N 个自然数的和
此自然数和程序与上面的示例相同。但在本程序中,我们递归调用 SoNat 方法并更新值。
import java.util.Scanner;
public class Example4 {
private static Scanner sc;
public static void main(String[] args)
{
int num, sum = 0;
sc = new Scanner(System.in);
System.out.print(" Please Enter any : ");
num = sc.nextInt();
sum = SoNat(num);
System.out.println("\n Output = " + sum);
}
public static int SoNat(int num)
{
if(num == 0)
{
return num;
}
else
{
return (num + SoNat(num - 1));
}
}
}
Please Enter any : 80
Output = 3240
范围内自然数的和
此 Java 程序 允许输入最小值和最大值。接下来,程序查找最小和最大值之间的自然数的和。
import java.util.Scanner;
public class Example5 {
private static Scanner sc;
public static void main(String[] args)
{
int minimum, maximum, i, sum = 0;
sc = new Scanner(System.in);
System.out.print(" Please Enter the Minimum value : ");
minimum = sc.nextInt();
System.out.print(" Please Enter the Maximum value : ");
maximum = sc.nextInt();
for(i = minimum; i <= maximum; i++)
{
sum = sum + i;
}
System.out.println("\n The Sum of Natural Numbers from " + minimum + " to "+ maximum + " = " + sum);
}
}
Please Enter the Minimum value : 5
Please Enter the Maximum value : 100
The Sum of Natural Numbers from 5 to 100 = 5040