Почему разный результат программы при переборе и вводе конкретного числа

Есть программа, вычисляющая сумму четных цифр числа, затем вычисляющая сумму цифр на четных позициях числа. Далее программа находит модуль разности этих чисел. Для примера взято число 15. Вывод в формате n, m, k, i, где n-сумма четных цифр, m-сумма цифр на четных позициях, k-модуль разности, i-исходное число. На первом скрине вывод при вводе числа 15, на втором при переборе (на числе 15). вывод при вводе числа 15

вывод на числе 15 при переборе от 1 до 1000

Код программы:

n = 0
m = 0
for i in range(1, 1000):
    s = str(i)
    for a in range(0, len(s), 1):
        x = int(s[a])
        if x % 2 == 0:
            n = n + x
        else:
            n = n + 0
    for b in range(1, len(s), 2):
        z = int(s[b])
        m = m + z
    k = abs(n - m)
    print(n,m,k,i)
    if k == 11:
        print(i)

Почему выводятся разные значения?


Ответы (0 шт):