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

寻找和为n³的连续奇数序列,求更优代码实现方案

更优实现思路:靠数学公式直接计算

不用预生成大列表再挨个遍历查找,直接通过数学推导算出每个n对应的连续奇数序列的起始值,就能快速生成目标序列,效率更高代码也更简洁。

推导逻辑

假设和为n³的n个连续奇数里,第一个数是a,那这n个数就是 a, a+2, a+4, ..., a+2*(n-1)。用等差数列求和公式算它们的和:

和 = na + 2(0+1+2+...+(n-1)) = na + n(n-1) = n*(a + n - 1)

因为这个和等于n³,两边除以n就能得到:a + n - 1 = n²,算出来起始奇数就是 a = n² - n + 1。

知道起始数后,直接生成从a开始的n个连续奇数就行,每个数比前一个大2。

简洁代码实现(Python为例)

def get_cube_odd_sequences(m):
    sequences = []
    for n in range(1, m+1):
        start = n**2 - n + 1
        # 生成n个连续奇数
        sequence = [start + 2*i for i in range(n)]
        sequences.append((n, n**3, sequence))
    return sequences

# 测试调用,比如m=5
for n, cube, seq in get_cube_odd_sequences(5):
    print(f"{n}³ = {cube} = {' + '.join(map(str, seq))}")

为啥这个方案更好

  • 不用预存大列表,省内存,尤其是m很大的时候优势明显
  • 直接定位起始数,避免了无意义的遍历查找,时间效率更高
  • 逻辑清晰,代码短也好维护,一眼就能看懂是怎么回事

内容的提问来源于stack exchange,提问作者Camila Veloso CADE

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 00:38:21