📅  最后修改于: 2023-12-03 15:11:34.323000             🧑  作者: Mango
这是一个常见的等差数列求和问题,也可以使用递推公式来解决。本题给出的是一个以2开始,公差为2的等差数列,所以我们可以使用以下公式求和:
sum = n*(2 + 2*n)/2
其中,n为等差数列的项数。
根据题目要求,我们可以对公式进行变形:
sum = (2*1 + 2*2)+(2*1 + 2*2 + 2*3)+(2*1 + 2*2 + 2*3 + 2*4)+……+(2*1 + 2*2 + 2*3 + 2*4 +…。+ 2*n)
sum = 2*(1+2+3+4+...+n) + 2*(1+2+3+4+...+n-1) + 2*(1+2+3+4+...+n-2) + … + 2*(1+2)
sum = 2*[n*(n+1)/2] + 2*[(n-1)*n/2] + 2*[(n-2)*(n-1)/2] + … + 2*[1*2/2]
sum = 2*[(n*(n+1)/2 + (n-1)*n/2 + (n-2)*(n-1)/2 + ... + 1*2/2)]
sum = 2*[n*(n+1)/2]
sum = n*(n+1)
因此,我们可以得到代码实现:
def sum_of_series(n):
"""
计算系列2和(2 + 4)+(2 + 4 + 6)+(2 + 4 + 6 + 8)+……+(2 + 4 + 6 + 8 +…。+ 2n)的总和
:param n: 系列的项数
:return: 总和
"""
return n * (n + 1)
# 示例代码
sum_of_series(5) # 输出 30