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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容