Почему не код не работает с входными данными на 7?

Друзья, всем привет! Решил порешать олимпиадки за 9-11 класс по информатике. В качестве языка был выбран питон. Не на долго хватило моих скиллов. Проблема вот в чём:

Сидел решал эту задачу "Задача 2. Чётные – нечётные Маша любит чётные числа, а Миша – нечётные. Поэтому они всегда радуются, если встречают числа, которые им нравятся.

Сегодня им встретились все целые числа от A до B включительно. Маша решила посчитать сумму всех чётных чисел от A до B, а Миша – сумму всех нечётных, после чего они начали спорить, у кого получилась сумма больше. Помогите им – найдите разность между суммой Маши и суммой Миши.

Программа получает на вход два целых положительных числа A и B, не превосходящие 2×109. Программа должна вывести одно число – разность между суммой чётных чисел и суммой нечётных чисел от A до B. Примеры входных и выходных данных Ввод 3 6 Вывод 2 Примечание Сумма чётных чисел равна 4 + 6 = 10, сумма нечётных чисел равна 3 + 5 = 8, разность равна 2. Ввод 3 7 Вывод -5 Примечание Сумма чётных чисел равна 4 + 6 = 10, сумма нечётных чисел равна 3 + 5 = 8, разность равна 2"

Сама задача по себе не сложная, но при вводе чисел 3 и 6 всё ок, получается и всё работает, а когда 3 и 7, то консоль просто молчит и всё. Может быть кто-нибудь знает в чём проблема? Вот код:

num_1 = int(input())
num_2 = int(input())
i = num_1

chet_sum = 0
nechet_sum = 0

# пока i больше или равно num_1 и пока i меньше или равно num_2
while i>=num_1 and i<=num_2:

    # если при делении по модулю на i на 2 остаток равен нулю 
    if i % 2 == 0:
        chet_sum = chet_sum + i
        i = i+1
        continue

    # если при делении по модулю на i на 2 остаток равен не нулю 
    if i % 2 != 0 and i != num_2:
        nechet_sum = nechet_sum + i
        i = i+1
        continue

print(chet_sum - nechet_sum)

input()
  • Вопрос задан
  • 205 просмотров
Решения вопроса 1
GavriKos
@GavriKos
if i % 2 != 0 and i != num_2:

Ну и по какой ветке идти коду, когда i==7, т.е. в конце перебора?

И кстати, ИМХО эту задачу надо решать не полным перебором - по времени просто не пройдет тесты.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы