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

Python如何实现可返回指定范围阶乘结果列表的递归函数

Python递归生成阶乘列表实现

需求说明

你需要的是完全基于递归实现、返回1到目标值所有阶乘结果的列表,支持两种返回场景:

  • x=5时返回1!到5!的结果:[1, 2, 6, 24, 120]
  • x=5时返回1!到6!的结果:[1, 2, 6, 24, 120, 720]
    且所有循环逻辑都封装在递归逻辑内部,无额外外部循环。

实现代码

def factorial_list(x, include_extra=False):
    # 递归终止条件:x=1时返回1!的结果
    if x == 1:
        return [1]
    # 递归获取前序阶乘列表
    pre_list = factorial_list(x-1, include_extra)
    # 追加当前x的阶乘结果
    pre_list.append(pre_list[-1] * x)
    # 触发额外返回要求时,追加x+1的阶乘结果
    if include_extra and len(pre_list) == x:
        pre_list.append(pre_list[-1] * (x+1))
    return pre_list

调用测试

# 场景1:返回1!到5!
print(factorial_list(5))
# 输出:[1, 2, 6, 24, 120]

# 场景2:返回1!到6!
print(factorial_list(5, include_extra=True))
# 输出:[1, 2, 6, 24, 120, 720]

实现说明

整个逻辑没有用到任何外部for/while循环,所有迭代逻辑都通过递归栈实现,完全符合要求。如果你的第二种场景是固定要包含0!(值为1),只需要修改终止条件为x==0时返回[1]即可,调整成本很低。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:54:05