Здравствуйте, дорогие друзья. Сегодня мы решаем на Python задачу про Ханойские башни.
Вот условие задачи: даны три стержня, на один из которых может быть нанизано от трёх дисков. Диски отличаются размером и лежат меньший на большем. Задача заключается в том, чтобы перенести пирамиду из дисков на соседний стержень за наименьшее количество ходов, притом больший диск нельзя класть на меньший.
А вот её решение:
А теперь ещё раз дублируем код, но теперь уже в текстовом варианте (извините, без отступов, Дзен их, увы, не передаёт):
def hanoi(n, pin1, pin2):
if n == 1:
print(f"Переложить диск 1 со стержня {pin1} на {pin2}")
else:
hanoi(n - 1, pin1, 6 - pin1 - pin2)
print(f"Переложить диск {n} со стержня {pin1} на {pin2}")
hanoi(n - 1, 6 - pin1 - pin2, pin2)
n = int(input("Введите кол-во дисков\n"))
hanoi(n, 1, 2)
На этом у меня на сегодня всё. Также предлагаю подписаться на наш Ютуб-канал ПиМ [ZveKa]. До новых встреч на просторах Яндекс Дзена.
Создаём элементарный Telegram bot на Python
Отдохнём? Полезная программа на Python, сохраняющая ваше здоровье.