有一个问题,要求找到正偶数和负奇数的总和,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
答案 0 :(得分:0)
我相信你的代码是正确的,你的数学是错误的。以下是解决问题的三种方法。
你的解决方案:
lst = range(1,101)
total = 0
for x in lst:
if x % 2:
total -= x
else:
total += x
print(total)
50
偶数之和加上奇数之和:
def sumForLoop(max):
positiveEven = sum(range(2,max+1,2))
negativeOdd = -sum(range(1,max+1, 2))
print(positiveEven + negativeOdd)
sumForLoop(100)
50
总计公式:
def sumFormula(max):
print(-1**100 *math.floor(max/2))
sumFormula(100)
50