Java 计算阶乘 - 两种实现方式 (循环与递归)
n 的阶乘是 n*(n-1)(n-2)……1,比如 5 的阶乘是 5432*1。
本文介绍两种用 Java 计算阶乘的方法:
实现方式一:循环
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个正整数 n:");
int n = scanner.nextInt();
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
System.out.println(n + "的阶乘是:" + result);
}
}
实现方式二:递归
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个正整数 n:");
int n = scanner.nextInt();
int result = factorial(n);
System.out.println(n + "的阶乘是:" + result);
}
public static int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
}
第一种方式使用循环,依次将 1 到 n 的数相乘得到阶乘,第二种方式使用递归,将 n 的阶乘转化为 (n-1) 的阶乘乘以 n。两种方式的结果是一样的。
原文地址: https://www.cveoy.top/t/topic/j7YM 著作权归作者所有。请勿转载和采集!