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

如何实现RangeFactorial(n)输出0到n的阶乘列表?

实现RangeFactorial函数返回0到n的阶乘列表

要让RangeFactorial(n)直接返回从0到n所有数字的阶乘列表,你可以通过两种方式实现,以下是具体方案:

方法1:基于现有单个阶乘函数扩展

如果你已经有一个能计算单个数字阶乘的函数,只需要在RangeFactorial里遍历0到n的所有整数,调用该函数并收集结果即可:

首先是单个阶乘函数:

def factorial(num):
    if num in (0, 1):
        return 1
    result = 1
    for i in range(2, num + 1):
        result *= i
    return result

然后实现RangeFactorial:

def RangeFactorial(n):
    factorials = []
    for i in range(n + 1):
        factorials.append(factorial(i))
    return factorials

调用示例:

# 获取0到10的阶乘列表
result = RangeFactorial(10)
print(result)
# 输出: [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800]

方法2:高效递推计算(无需单独阶乘函数)

利用阶乘的递推特性i! = (i-1)! * i,我们可以在遍历过程中维护当前阶乘值,避免重复计算,效率更高:

def RangeFactorial(n):
    factorials = []
    current = 1
    for i in range(n + 1):
        factorials.append(current)
        current *= (i + 1)
    return factorials

逻辑说明:

  • 初始current为1,对应0的阶乘;
  • 每次先将当前阶乘值加入列表,再乘以i+1得到下一个数字的阶乘;
  • 遍历完成后,列表里就包含了从0到n的所有阶乘结果。

调用这个函数后,直接返回的列表可以直接使用或打印,无需手动循环调用单个阶乘函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 17:17:11