Уведомления

Группа в Telegram: @pythonsu

#1 Май 17, 2022 16:32:33

JustYeahJust
Зарегистрирован: 2022-03-28
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Рекурсия

Здравствуйте! Скажите, пожалуйста, как сделать так, чтобы последовательность выводилось в правильном порядке?
Задача:
Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 0. Выведите все нечетные числа из этой последовательности, сохраняя их порядок.

В этой задаче нельзя использовать глобальные переменные и передавать какие-либо параметры в рекурсивную функцию. Функция получает данные, считывая их с клавиатуры. Функция не возвращает значение, а сразу же выводит результат на экран. Основная программа должна состоять только из вызова этой функции.

Ввод Вывод
3 3
1 1
2
0

Мой код:
def write():
—-a = int(input())
—-if a == 0:
——–return
—-elif a % 2 == 1:
——–write()
——–print(a)
—-else:
——–write()

write()

Но он выводит нечётные числа с конца последовательности.

Офлайн

#2 Май 17, 2022 16:38:54

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Рекурсия

 def write():
    a = int(input("Next item:"))
    if a == 0:
        return
    elif a % 2 == 1:
        print(a)
        write()
    else:
        write()
write()



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version