定義
一個正整數(shù)的階乘是指所有小于或等于該正整數(shù)的正整數(shù)的乘積,記作n!,0的階乘等于1
Java遞歸實現(xiàn)
/**
* 計算數(shù)n的階乘值
*
* @param n
* 階乘停止的值
* @return 階乘后的結(jié)果
*/
public int factorial(int n) {
if (n == 0) {
return 1;
} else if (n < 0) {
return n * factorial(n + 1);
} else {
return n * factorial(n - 1);
}
}
Java非遞歸實現(xiàn)
/**
* 非遞歸實現(xiàn)階乘
*
* @param n
* @return
*/
public int factorialWithoutTraversal(int n) {
int result = 1;
if (n == 0) {
// 如果n等于0直接返回1
return result;
}
int start = n > 0 ? 1 : n;// 如果n大于0的話,階乘起始值設(shè)為1,否則設(shè)為n
int end = n > 0 ? n : -1;// 如果n大于0的話,階乘終止值設(shè)為n,否則設(shè)為-1
for (; start <= end; start++) {
result = result * start;
}
return result;
}