注
0.使用数组与BigInteger类计算阶乘,还需要开额外的内存,不建议使用;
1.递归在阶乘是函数的一次一次调用,每个函数的开启,参数必须压到堆栈中,会消耗大量的内存。
2.当计算阶乘小的时候,递归优于循环,当计算阶乘较大时,推荐使用递归;
1.使用普通循环计算阶乘
public int normalCircle(int num) {//正常循环计算阶乘
int sum = 1;
for (int i = 1; i <= num; i++) {
sum *= i;
}
return sum;
}
2.使用递归方式计算阶乘
public int reCircle(int num) {//递归循环计算阶乘
int sum = 1;
if (num == 1) {
return 1;
}
sum = num * reCircle(num - 1);
return sum;
}