Использование цикла For для нахождения суммы положительных четных и отрицательных нечетных чисел в Python - PullRequest
0 голосов
/ 07 мая 2018

Задача, которая требует найти сумму положительных четных чисел и отрицательных нечетных чисел, от 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 голосов
/ 07 мая 2018

Я верю, что ваш код верен, а математика неверна. Вот три способа решения проблемы.

ваше решение:

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

...