Найти тему

Задача про Ханойские башни на Python

Здравствуйте, дорогие друзья. Сегодня мы решаем на 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: зачатки простейшего искусственного интеллекта для построения таблиц истинности

Отдохнём? Полезная программа на Python, сохраняющая ваше здоровье.