题目链接

要求:

  写一个函数计算阶乘。

  如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积。
  阶乘通常简写成 n! 例如: 5! = 1 * 2 * 3 * 4 * 5 = 120
– !0 = 0
– 负数无阶乘
– 正数n的阶乘:n=n*(n-1)


思考:

  当函数传入一个值之后
– 如果是0,返回1
– 如果是负数,直接返回
– 如果是正整数,公式n = n*(n-1)


解法:
解法1

解法2

解法3

  和解法1思路一样,但是代码上更加简介。这是在帅帅秋的博客上看到的。看了一下想起来以前的知识点。
– result是作为factorialize函数的局部变量存在
– for循环的执行顺序是如下

for循环流程图

  0的阶乘是0[题目中没有说负数,负数没有阶乘],那么如果输入参数0的话,是只会执行初始变量,而不会执行判断条件。所以最后的结果仍然是1。但是个人喜欢for循环简单一点。这样后期自己和别人阅读代码起来会更加容易些。


相关链接

帅帅秋的博客

JS 三目运算符和RETURN

JS三元运算符


发表评论

电子邮件地址不会被公开。 必填项已用*标注