You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python递归阶乘函数实现问题:计算结果异常排查求助

递归阶乘函数问题排查与解决

你提供的递归阶乘函数逻辑本身是正确的:

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

调用factorial(5)会返回120,factorial(3)返回6,完全符合阶乘的计算规则。出现"输入正整数无法返回正确值"的问题,大概率是以下场景导致:

  • 输入未转为整数:如果通过input()获取用户输入,默认得到的是字符串类型,直接传入函数会引发类型错误,或导致计算异常。解决方式是先将输入转为整数:

    num = int(input("请输入正整数:"))
    print(factorial(num))
    
  • 未输出计算结果:仅调用factorial(n)而未通过print()输出,会导致看不到返回值,误以为函数计算错误。确保调用时打印结果,或将结果赋值给变量后查看。

  • 大数递归栈溢出:当输入的正整数过大(比如超过1000),Python默认的递归深度限制会触发RecursionError。这种情况下建议改用迭代实现:

    def factorial(n):
        result = 1
        for i in range(1, n+1):
            result *= i
        return result
    

内容的提问来源于stack exchange,提问作者Mahima Chandel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 12:02:07