使用For循环在python中查找正偶数和负奇数之和

时间:2018-05-07 04:02:31

标签: python-2.7 for-loop

有一个问题,要求找到正偶数和负奇数的总和,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

1 个答案:

答案 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