Как сделать цикл без цикла?
Разбираем очередной вопрос из собеседований
Часто на собеседованиях на младшие позиции компании хотят проверить, как у вас с нестандартным мышлением и решениями в условиях ограничений. Проще говоря — как вы ведёте себя в необычных ситуациях.
Пример такой задачи:
👉 Представьте, что в вашем языке программирования пропали все циклы. Как вы организуете в этом случае три классических цикла: for, while и until? Можно на примере Python или любого другого языка.
Решение:
Чтобы решить эту задачу, нужно вспомнить, что цикл — это повторение одного и того же несколько раз. Сколько именно раз — зависит от вида цикла.
В каждом цикле есть два важных параметра:
Переменная цикла, которая должна как-то меняться в процессе.
Условие цикла, по которому этот цикл закончится.
Получается, что в нашем решении обязательно должны быть эти два компонента, чтобы сымитировать работу цикла. Запомним это и подумаем дальше.
Раз нам нельзя использовать циклы, то попробуем сделать так:
Выполняем нужные команды.
Проверяем условия и смотрим, нужно остановиться или продолжаем дальше.
Если продолжаем — снова выполняем нужные команды
Но как нам выполнить команды снова, если мы не знаем точного количества повторений и нельзя использовать циклы? Используем для этого рекурсию — это когда функция внутри вызывает сама себя. А условие цикла будем проверять с помощью условного оператора if.
Попробуем так сделать простой цикл for, который выведет числа от 1 до 5: