您的位置:首页 > 编程语言 > Python开发

python初学 汉诺塔攻略实现

2015-09-02 22:22 477 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: