python初学 汉诺塔攻略实现

print('智商太低,汉诺塔玩不过去只好写个作弊器了....')
#解决思路就是n个盘子,先把最底层之上的盘子移到中间那个杆子里面,即n-1个盘子移动到y(利用z杆子),把最底下的盘子移动到z杆子,再把y杆子上面
#n-1个盘子移动到z杆子即可(利用x杆子)
def zuobiqi(n,x,y,z):
    if n==1:
        print(x,'->',z)
    else:
        zuobiqi(n-1,x,z,y)#将n-1个盘子从x移动到y处,中间借用盘子z
        print(x,'->',z)#将最底下的盘子移动到z处
        zuobiqi(n-1,y,x,z)#将剩下的n-1个盘子移动到z处

n=int(input("你告诉我汉诺塔中有几个盘子: "))
print('下面就是答案!!!')
zuobiqi(n,'x','y','z')

递归思想实现,运行结果如下:

智商太低,汉诺塔玩不过去只好写个作弊器了....就尝试了下7个盘子少有人完成的难度
你告诉我汉诺塔中有几个盘子: 7
下面就是答案!!!
x -> z
x -> y
z -> y
x -> z
y -> x
y -> z
x -> z
x -> y
z -> y
z -> x
y -> x
z -> y
x -> z
x -> y
z -> y
x -> z
y -> x
y -> z
x -> z
y -> x
z -> y
z -> x
y -> x
y -> z
x -> z
x -> y
z -> y
x -> z
y -> x
y -> z
x -> z
x -> y
z -> y
z -> x
y -> x
z -> y
x -> z
x -> y
z -> y
z -> x
y -> x
y -> z
x -> z
y -> x
z -> y
z -> x
y -> x
z -> y
x -> z
x -> y
z -> y
x -> z
y -> x
y -> z
x -> z
x -> y
z -> y
z -> x
y -> x
z -> y
x -> z
x -> y
z -> y
x -> z
y -> x
y -> z
x -> z
y -> x
z -> y
z -> x
y -> x
y -> z
x -> z
x -> y
z -> y
x -> z
y -> x
y -> z
x -> z
y -> x
z -> y
z -> x
y -> x
z -> y
x -> z
x -> y
z -> y
z -> x
y -> x
y -> z
x -> z
y -> x
z -> y
z -> x
y -> x
y -> z
x -> z
x -> y
z -> y
x -> z
y -> x
y -> z
x -> z
x -> y
z -> y
z -> x
y -> x
z -> y
x -> z
x -> y
z -> y
x -> z
y -> x
y -> z
x -> z
y -> x
z -> y
z -> x
y -> x
y -> z
x -> z
x -> y
z -> y
x -> z
y -> x
y -> z
x -> z


你可能感兴趣的:(python零基础走起,数据结构算法)