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;
}

你可能感兴趣的:(FCC - 253 计算一个整数的阶乘)