n! = n * (n-1)!,基例 0! = 1! = 1。
import java.util.Scanner;
public class FactorialRecursive {
public static long fact(int n) {
if (n <= 1) return 1;
return n * fact(n - 1);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(n + "! = " + fact(n));
}
}
public class FactorialDemo {
static class Calculator {
long fact(int n) {
return n <= 1 ? 1 : n * fact(n - 1);
}
}
public static void main(String[] args) {
Calculator c = new Calculator();
System.out.println("5! = " + c.fact(5)); // 120
}
}
long 最大支援 20! (2.43e18);21! 溢出BigInteger:BigInteger.ONE 起始,multiply(BigInteger.valueOf(i))n,n > 10000 可能棧溢出,大數階乘建議迭代
long factIter(int n) {
long r = 1;
for (int i = 2; i <= n; i++) r *= i;
return r;
}