Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 9, 2014 10:22:11

Samar
Зарегистрирован: 2014-09-27
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача Ремонт в Ханое

Постановлением ЮНЕСКО оригинал Ханойской башни был подвергнут реставрации. В связи с этим во время пользования головоломкой нельзя было перекладывать кольца с первого стержня сразу на третий и наоборот.

Решите головоломку (переложите все кольца с первого стержня на третий) с учетом этих ограничений. Вам не нужно находить минимальное решение, но количество совершенных перемещений не должно быть больше 200000, при условии, что количество дисков не превосходит 10.

Каждое перемещение задается тремя числами: номер кольца, исходный стержень, конечный стержень.

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

Не могу решить, помогите!
Вот мой вариант, но он не совсем так решает.

def move(n, start, finish):
    if start == 2 or finish == 2:
        if n > 0:
            temp = 6 - start - finish
            move(n - 1, start, temp)
            move(n - 1, temp, finish)
            print(n, start, finish)
    else:
        if n > 0:
            temp = 6 - start - finish
            move(n - 1, start, finish)
            move(n, start, temp)
            move(n - 1, finish, start)
            move(n, temp, finish)
            move(n - 1, start, finish)
            print(n, start, finish)
n = int(input())
print(move(n,1,3))

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version