- 递归方式一、函数自己调用自己 factorial函数
- 递归方式二、通过循环实现 factorial2函数
- 超出运算能力了怎么办? factorial3函数
package cn.csx.demo03;
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
System.out.println(factorial(10));
System.out.println(factorial(10000));
System.out.println(factorial2(10000));
System.out.println(factorial3(1000));
}
public static long factorial(int n){
if(n==0) {
return 1;
}else {
return n*factorial(n-1);
}
}
public static long factorial2(int n){
long result = 1;
for(int i=1;i<=n;i++) {
result = result * i;
}
return result;
}
public static BigInteger factorial3(int n) {
BigInteger result = BigInteger.valueOf(1);
for(int i = 1;i <=n;i++) {
BigInteger i2 = BigInteger.valueOf(i);
result = result.multiply(i2);
}
return result;
}
}