我有一个从1到5的范围。 该范围内的每个数字被平方。获取范围内所有数字的总和
for x in range(1, 5 + 1):
x = x ** 2
print(x)
这样做,给了我: 1,4,9,16,25
,是完美的,但我怎么然后申请新的数字之和的范围,让他们等于55?
我有一个从1到5的范围。 该范围内的每个数字被平方。获取范围内所有数字的总和
for x in range(1, 5 + 1):
x = x ** 2
print(x)
这样做,给了我: 1,4,9,16,25
,是完美的,但我怎么然后申请新的数字之和的范围,让他们等于55?
累积的总和:
>>> total = 0
>>> for x in range(1, 5+1):
... total += x ** 2
...
>>> total
55
更优选地,使用sum
和generator expression:
>>> sum(x**2 for x in range(1, 5+1))
55
total = 0
for x in range(1, 5 + 1):
x = x ** 2
total = total + x
print(x)
print total
以上应该可以帮助你。当你计算X到另一个变量中时,你想要存储总和。然后,您可以在程序中进一步使用总和。
啊,好点。对不起,我很久没有用过python了。 (回应关于不使用sum作为变量名称的评论,因为它隐藏了名为sum的函数) – TheOneWhoPrograms
替代square pyramidal number solution(由M4rtini建议):
(2*(5**3) + 3*(5**2) + 5)/6
或一般N:
def square_pyramid(x):
return (2*(x**3) + 3*(x**2) + x)/6
数学来救援! http://en.wikipedia.org/wiki/Square_pyramidal_number – M4rtini
谢谢! 我有它,我犯了2个错误,我使用sum作为变量,我有一个错字。 – Sinfamy
@Sinfamy你甚至不需要迭代。有一个公式可以找到答案。请检查我的答案。 – thefourtheye