求一个数的阶乘可以有两种方法来实现它。一是用递归,而是非递归方法。
- 用递归:public static int doFactorial(int n) {
if (n < 0) { // 传入的n不合法
return -1; // 返回-1,说明参数不合法
}
if (n == 0) {// 0!=1
return 1;
} else if (n == 1) {// 退出递归的条件
return 1;
} else {// 满足进行递归的条件
return n * doFactorial1(n - 1);
}
} - 非递归:public static int doFactorial(int n) {
int result = 1;// 结果
if (n < 0) {// 传入的n不合法
return -1;// 返回-1,说明参数不合法
}
if (n == 0) {// 0!=1
return 1;
} - for (int i = 1; i <= n; i++) {// 从1~n相乘
result *= i;
}
return result;// 返回结果
}