【发布时间】:2018-10-16 19:55:51
【问题描述】:
有一个问题要求找到正偶数和负奇数之和,1 到 100(所以 1+2-3+4....+98-99+100)。这是我到目前为止所做的,如果我的数学运算正确,正确的总和应该是 52,但我得出的总和是 50。有什么建议吗?
lst = range(1,101)
>>> total = 0
>>> for x in lst:
... if x % 2:
... total -= x
... else:
... total += x
...
>>> total
50
【问题讨论】:
-
为什么你认为这等于 52?
sum(range(2, 101, 2)) - sum(range(1, 100, 2)) == 50。或者只是数学,2+100 == 4+98 == ... = 102*25和1+99 == 3+97 == ... = 100*25,所以102*25 - 100*25 = 50。 -
您的代码与您的过期输出不匹配。
1+2-3+4...+98-99+100,1根据你的描述应该是-1。
标签: python-2.7 for-loop