递归求阶乘:基例写错了

👁️ 23 人浏览 💬 0 人评论 ❤️ 添加收藏

递归就是函数调用自己。写递归要两样东西:

  • 基例:最简单的情况直接给答案,不再调用自己(否则停不下来,报 RecursionError);
  • 递推:把问题变小一点,交给自己去算。
def fact(n):
    if n == 0:          # 基例:0! = 1
        return 1
    return n * fact(n - 1)   # 递推:n! = n × (n-1)!

下面的程序读入 n(0 ≤ n ≤ 10),输出 n 的阶乘,可是不管输入多少都输出 0。改一处让它对。运行后看画布:每一层调用都弹出一张卡片。

样例:输入 4,输出:

24

代码里以 @youci 开头的 print 只负责运行后在画布上显示中间值,不影响输出和判题,不用改。

提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论
🔒 登录并作答后可看讨论