計算一個整數的階乘
如果用字母n來代表一個整數,階乘代表著所有小于或等于n的整數的乘積。
階乘通常簡寫成 n!
例如: 5! = 1 * 2 * 3 * 4 * 5 = 120
剛拿到題目我想到了遞歸,先寫了如下的代碼:
function factorialize(num) {
// 請把你的代碼寫在這里
for(var i=num;i>1;i--){
return num*factorialize(num-1);
}
return num;
}
factorialize(5);
這么寫對于傳值5進去是沒有問題的,但是要考慮到0的階乘是1,所以應該寫成:
function factorialize(num) {
// 請把你的代碼寫在這里
if(num===0){return 1;}
else if(num>0)
{
for(var i=num;i>2;i--){
return num*factorialize(num-1);
}
}
return num;
}
factorialize(5);
這樣才算闖關成功。
后來在網上搜了一下別人的代碼,摘了兩段覺得比較好的,貼上來學習
function factorial(num) {
if(num <= 1) {
return 1;
} else {
return num * factorial(num - 1);
}
}
function factorialize(num) {
return num > 1 ? num * factorialize(num-1) : 1;
}