递归法求n的阶乘算法

94次

问题描述:

递归法求n的阶乘算法

推荐答案

2023-10-24 17:09:23

求n的阶乘的过程分为回推和递推。

1.回推

求n的阶乘可以描述如下:

n!=n*(n-1)!

(n-1)!=(n-1)*(n-2)!

(n-2)!=(n-2)*(n-3)!

(n-3)!=(n-3)*(n-4)!

...

2!=2*1!

1!=0!

0!=1

1!=1

如果把n!写成函数形式,即f(n),则f(5)就是表示5!。求5!的过程可以写成如下形式:

f(5)=5*f(4)

f(4)=4*f(3)

f(3)=3*f(2)

f(2)=2*f(1)

f(1)=1

从上述过程可以看出,求f(5)就需要调用f(4),求f(4)就需要调用f(3),求f(3)就需要调用f(2),求f(2)就需要调用f(1)。其中f(5)、f(4)、f(3)、f(2)、f(1)都会调用同一个函数f,只是参数不同而已

其他答案

2023-10-24 17:09:23

递归法求n的阶乘可以通过定义递归基例和递归表达式来实现。当输入为1时,阶乘为1,作为递归基例;当输入为n时,先调用函数自身计算n-1的阶乘,然后乘以n,最终得到n的阶乘1。下面是Python代码实现

```pythondef factorial(n): if n == 1: return 1 else: return n * factorial(n-1)```

在计算阶乘的过程中,函数会不断调用自身,直到达到递归基例,然后再一步步返回结果。

知道问答相关问答

(c)2008-2025 自学教育网 All Rights Reserved 汕头市灵创科技有限公司
粤ICP备2024240640号-6