Python 2.7 在python中使用For循环查找正偶数和负奇数之和
有一个问题要求求正偶数和负奇数之和,1到100(所以1+2-3+4…+98-99+100)。这是我到目前为止所做的,如果我做的数学正确,正确的总数应该是52,但我得出的总数是50。有什么建议吗Python 2.7 在python中使用For循环查找正偶数和负奇数之和,python-2.7,for-loop,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 +=
lst = range(1,101)
>>> total = 0
>>> for x in lst:
... if x % 2:
... total -= x
... else:
... total += x
...
>>> total
50
我相信你的代码是对的,你的数学是错的。这里有三种解决问题的方法 您的解决方案:
lst = range(1,101)
total = 0
for x in lst:
if x % 2:
total -= x
else:
total += x
print(total)
五十
偶数加奇数之和:
def sumForLoop(max):
positiveEven = sum(range(2,max+1,2))
negativeOdd = -sum(range(1,max+1, 2))
print(positiveEven + negativeOdd)
sumForLoop(100)
五十
总数的计算公式:
def sumFormula(max):
print(-1**100 *math.floor(max/2))
sumFormula(100)
50为什么你认为这等于52<代码>总和(范围(2101,2))-总和(范围(1100,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
。