Найти - Пользователи
Полная версия: ханойские башни
Начало » Python для новичков » ханойские башни
1
Kudrat
Доброго времени суток.
Решил на старости лет выучить Python. все заходило нормально пока не уперся в задачи про ханойские башни. решить не смог ,скачал готовое решение. но не могу понять алгоритм работы функции:
def Hanoi(n,x,y,c):
if n >0:
Hanoi(n-1,x,c,y)
print (n,x,y)
Hanoi(n-1,c,y,x)т
print (n,x,y)
return n,x,y
n = int(input())
x = 1
y = 3
c = 2
Hanoi(n,x,y,c)
когда n = 2 все понятно программа печатает : 1) (n-1,x,c) не печатает (y)
2) (n,x,y) 3) (n-1, c ,y).
когда n = 3 , перестаю понимать: программа печатает (n -1,x,y) пропускает ©
это и сбивает с толку.
py.user.next
Не надо начинать с ханойских башен, надо начинать с факториала. Там один рекурсивный вызов, его можно осознать.
Рекурсия осознаётся через три вещи: осознание базового случая; осознание случая, стоящего сразу перед базовым; осознание перехода от случая, стоящего сразу перед базовым, к базовому случаю.
Так ты её и создаёшь, и разбираешь.
Kudrat
Обязательно последую вашему совету.
Но все таки если не трудно, обьясните плз как программа понимает в каком порядке подавать значение на
print .
разобрался
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB