FCC - 253 計算一個整數的階乘

計算一個整數的階乘

如果用字母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;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容