Предмет: Информатика, автор: Leomyself

По данным двум натуральным числам A и B (A≤B) выведите все чётные числа на отрезке от A до B. В этой задаче нельзя использовать инструкцию if. Если что то это из сириуса! напишите программу пожалуйста


rinatmuxekto86: Язык программирования?
Leomyself: питон

Ответы

Автор ответа: rinatmuxekto86
1

Поламал немного голову, пришёл к такому решению:

a=int(input())

b=int(input())

even=a%2==0

while even:

   print(a)

   a+=2

   even=a<=b

a+=1

even=a<=b

while even:

   print(a)

   a += 2

   even = a <= b

Объяснение:

Сначала получаем на вход наши значения и добавим одну булиновскую переменную, которая будет у нас проверять, в какой из двух ситуаций (об этом чуть позже) мы находимся и пора ли завершать наш цикл.

У нас есть 2 сценария: наше число а или чётное или нечётное, во втором случае нам надо будет добавить к нему единицу прежде чем начать выводить.

Первый цикл while расписывает сценарий, когда a - чётное

even=a%2==0 - проверяем на чётность

while even: - Пока значение нашей переменной even - True - цикл будет продолжаться

Внутри самого цикла мы прописываем условие:

a+=2 - получаем следующее чётное число

even=a<=b - проверяем, превысили ли мы значения b или ещё нет - если нет, цикл запустится повторно, если да - цикл прервётся

После окончания первого цикла мы прибавляем к значению a единичку: это действие никак не зааффектит на нас, если первый цикл выполнялся, это действие направлено как раз на сценарий, когда a - нечётное. Если число нечётное, то ближайшее чётное число всего лишь в 1 от него.

После того как мы прибавляем 1 мы проверяем, срабатывал ли у нас первый цикл:

even=a<=b - если первый цикл запускался, то это условие будет ложным и второй цикл не запустится, однако, если условие всё таки истинно, то второй цикл начнёт свою работу.

Формат второго цикла никак не отличается от первого, повторюсь, главная его особенность: он не запустится, если первый цикл запускался

Похожие вопросы
Предмет: Английский язык, автор: tevufhbz
Предмет: Русский язык, автор: Аноним
Предмет: Английский язык, автор: danabajzhenova
Предмет: Алгебра, автор: slav546