计算阶乘
重要性: 4
自然数 的 阶乘 是一个数乘以 "该数减一"
,然后乘以 "该数减二"
,依此类推,直到 1
。 n
的阶乘表示为 n!
我们可以这样写阶乘的定义
n!
=
n *
(
n -
1
)
*
(
n -
2
)
*
...
*
1
不同 n
的阶乘值
1
!
=
1
2
!
=
2
*
1
=
2
3
!
=
3
*
2
*
1
=
6
4
!
=
4
*
3
*
2
*
1
=
24
5
!
=
5
*
4
*
3
*
2
*
1
=
120
任务是编写一个函数 factorial(n)
,使用递归调用来计算 n!
。
alert
(
factorial
(
5
)
)
;
// 120
P.S. 提示:n!
可以写成 n * (n-1)!
例如:3! = 3*2! = 3*2*1! = 6
根据定义,阶乘 n!
可以写成 n * (n-1)!
。
换句话说,factorial(n)
的结果可以计算为 n
乘以 factorial(n-1)
的结果。 n-1
的调用可以递归地向下下降,直到 1
。
function
factorial
(
n
)
{
return
(
n !=
1
)
?
n *
factorial
(
n -
1
)
:
1
;
}
alert
(
factorial
(
5
)
)
;
// 120
递归的基础是值 1
。 我们也可以在这里将 0
作为基础,这并不重要,但会多出一个递归步骤
function
factorial
(
n
)
{
return
n ?
n *
factorial
(
n -
1
)
:
1
;
}
alert
(
factorial
(
5
)
)
;
// 120