#汉诺塔游戏(python)
#汉诺塔游戏
def recursive_num(n,x,y,z):
global num
if n==1:
print(x,"->",z)
num+=1
else:
recursive_num(n-1,x,z,y)
print(x,"->",z)
num+=1
recursive_num(n-1,y,x,z)
n=int(input("输入安诺塔层数:"))
num=0
recursive_num(n,'x','y','z')
print(num)
- 看成先把n-1个放到Y上,再把X上最后一个放到Z上,最后把n-1个从X放到Z上。
- 如何把n-1个放到Y上呢?可以看出n-2个从X到Z,倒数第二个从X到Y。
- n-2放到Y上一样。
- n-3放到Y上一样。
- 都是相对Y
- 直到n = 1时,从 相对X上第一个转到转到相对Z上