📜  打印系列6、28、66、120、190、276等的前N个术语(1)

📅  最后修改于: 2023-12-03 15:25:46.426000             🧑  作者: Mango

打印系列6、28、66、120、190、276等的前N个术语

这个序列很特殊,它看上去像是每隔一个等差数列就插入一个数的样子。但是它实际上是一个三次方程序列的前几项,其中第n个数是:

an = n^3 - (3n^2 - 3n + 1)

因此,我们只需要根据公式计算即可得到前N个术语。下面是一个Python的实现:

def odd_series(n):
    return n**3 - (3*n**2 - 3*n + 1)

N = 10

for i in range(N):
    print(odd_series(i))

这会打印出前10个术语:

0
6
28
66
120
190
276
378
506
660

如果你要将这些术语存储在一个列表中,你可以这样做:

def odd_series(n):
    return n**3 - (3*n**2 - 3*n + 1)

N = 10
series = []

for i in range(N):
    series.append(odd_series(i))

print(series)

这会打印出:

[0, 6, 28, 66, 120, 190, 276, 378, 506, 660]

如果你想要一个更简单的方法,你可以使用列表理解:

def odd_series(n):
    return n**3 - (3*n**2 - 3*n + 1)

N = 10
series = [odd_series(i) for i in range(N)]

print(series)

这将打印出相同的结果:

[0, 6, 28, 66, 120, 190, 276, 378, 506, 660]

现在你已经学会了如何计算并打印出这个序列的前N个术语,你可以尝试使用不同的语言来实现它。