python - 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)
解决方案
对于1
和n-1
(含)之间的每个数字,您需要将其乘以以下数字,然后将它们全部相加。表示这一点的最简单方法是对range
调用使用理解表达式:
result = sum(i * (i + 1) for i in range(1, n))
推荐阅读
- c++ - C++ 如何理解这两种输入模式?
- twitter-bootstrap-3 - 下拉菜单中下拉切换类的用途是什么
- sony-audio-control-api - 索尼 ZR5 音频控制 API
- node.js - Mongo 在每次页面刷新时建立新连接
- bittorrent - uTorrent 的 uTorrentPartFile.dat 的结构
- excel - 如果每个值的总和满足特定标准,则总和分配的值
- math - 查找拍摄照片球的位置
- javascript - 以下带有生成器的代码块 BrowserSync
- c# - WPF 用户控件拖放
- c++ - 需要 'template<>' 语法 --> 通过函数调用类模板