Рекурсия · 18 из 19
Разобрать стопку
Альбомы в кладовке сложены стопкой, самый большой внизу. Их надо перенести на новую полку, а перекладывать можно только по одному и только так, чтобы больший альбом никогда не лёг на меньший. Есть ещё табурет — как временное место.
Что сделать
Перенесите стопку альбомов на новую полку по одному — никогда не кладя больший на меньший.
Что приходит
skolko— сколько альбомов в стопке, от нуляotkuda,kudaиcherez— откуда переносим, куда и какое место временное
Что вернуть
Список ходов по порядку, каждый — (откуда, куда); ноль альбомов — [].
Допишите функцию hody в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
Два альбома с кладовки на полку через табурет: малый на табурет, большой на полку, малый с табурета на полку — [("кладовка", "табурет"), ("кладовка", "полка"), ("табурет", "полка")].
hody(3, "кладовка", "полка", "табурет")
[('кладовка', 'полка'), ('кладовка', 'табурет'), ('полка', 'табурет'), ('кладовка', 'полка'), ('табурет', 'кладовка'), ('табурет', 'полка'), ('кладовка', 'полка')]
Функция принимает: сколько альбомов в стопке (целое, не меньше нуля), откуда переносим, куда переносим и через какое место (три строки). Возвращает список ходов по порядку. Каждый ход — кортеж из двух строк: откуда взяли верхний альбом и куда положили. Для нуля альбомов список пуст.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.