鱼C论坛

 找回密码
 立即注册
查看: 564|回复: 4

python中利用递归方法求5的阶乘

[复制链接]
发表于 2024-3-13 09:43:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码如下:
def sum(n):
    if n == 0:
        return 1
    else:
        return n * sum(n-1)

print(sum(5))

其中 return 1 这行代码是什么意思呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-13 09:43:50 | 显示全部楼层
这里的`return 1`表示当n等于0时,函数应该返回的结果是1。因为5的阶乘定义为5 × 4 × 3 × 2 × 1,其中1是乘法的基础单位,所以在递归函数中,当n等于0时,就可以结束递归了,返回结果1。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-13 09:45:29 | 显示全部楼层
FishC 发表于 2024-3-13 09:43
这里的`return 1`表示当n等于0时,函数应该返回的结果是1。因为5的阶乘定义为5 × 4 × 3 × 2 × 1,其中1 ...

这个return 1有什么意义呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-13 09:45:38 | 显示全部楼层
python小小白哟 发表于 2024-03-13 09:45
这个return 1有什么意义呢?


这里的`return 1`表示当递归到达基准情况(n等于0)时,返回的结果是1。在计算阶乘的过程中,当n减小到0时,就意味着已经计算到了最小的乘法单位1,所以此时的结果应该是1。这样可以确保递归函数能够正确地终止,并返回最终的结果。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-13 11:48:08 | 显示全部楼层
本帖最后由 jackz007 于 2024-3-13 12:12 编辑

       递归函数都有两个分支,一个分支是供递归到底时执行,另一个分支供递归未到底时,继续递归执行。所以,递归函数需要做的头一件事,就是判定递归是否已经到底。
       就本例而言,递归函数 sum(n) 是根据输入参数 n 来判断递归状态的,当 n > 0 时,递归未到达终点,n = 0 时,递归到达终点。
       以 sum(6) 为例,在递归过程中,n 值从 6 开始逐渐减小,当 n = 0 时,递归到达终点,从这个时候起,sum(0) 开始有了确定的返回值 1,于是,sum(1) = 1 * sum(0) = 1 * 1 = 1,sum(2) = 2 * sum(1) = 2 * 1 = 2,sum(3) = 3 * sum(2) = 3 * 2 = 6,sum(4) = 4 * sum(3) = 4 * 6 = 24 . . .,最后,递推出 sum(6) = 720。
sum(6)
     sum(5)
          sum(4)
               sum(3)
                    sum(2)
                         sum(1)
                              sum(0)             <--- 【递归终点】
                              return 1           <--- 【递归终点】
                         return 1 * sum(0) = 1
                    return 2 * sum(1) = 2 * 1 = 2
               return 3 * sum(2) = 3 * 2 = 6
          return 4 * sum(3) = 4 * 6 = 24
     return 5 * sum(4) = 5 * 24 = 120
return 6 * sum(5) = 6 * 120 = 720
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 10:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表