首页 > 解决方案 > Python算术序列和

问题描述

如何制作遵循此的代码?1⋅2+2⋅3+3⋅4+…+(n−1)⋅n

例如,如果n=5,答案是1⋅2+2⋅3+3⋅4+4⋅5=40.

n不能小于或等于 2 或大于或等于 1000

这是我现在的代码,但它不起作用。

n = int(input())
if n>= 2 and n<=1000:
    sum = 0;
    numbers = range(1, n+1)
    for amount in numbers:
        if (amount % 2 == 1):
            sum *= amount
        else:
            sum += amount 
    print(sum)

标签: pythonsum

解决方案


对于1n-1(含)之间的每个数字,您需要将其乘以以下数字,然后将它们全部相加。表示这一点的最简单方法是对range调用使用理解表达式:

result = sum(i * (i + 1) for i in range(1, n))

推荐阅读