递归实现
/** * 计算一个数的阶乘。 阶乘的定义为: 0的阶乘为1 n的阶乘为n*(n-1)*(n-2)*...*2*1 * * @param n 输入数字 * @return 该数字的阶乘 */ public static int factorial(int n) { if(n==1||n==0){ return 1; }else { return n*factorial(n-1); } }
倒序循环实现
int sum= 1; for (int i = n; i > 0; i--) { sum *= i; } return sum;
循环实现
public static int factorial(int n) {
int sum = 1;
if(n==1){
return 1;
}else{
for(int i=2;i<=n;i++){
sum*=i;
}
return sum;
}
}