赞
踩
- def hanoi(n,x,y,z):
- if n == 1:
- print(x,'-->',c)
-
- else:
- hanoi(n-1,x,z,y)
- #将前n-个盘子从x移动到y上
-
- hanoi(1,x,y,z)
- #将第n个盘子从x移动到z上
-
- hanoi(n-1,y,x,z)
- #将y上的n-1个盘子从y移动到z上
-
- n = int(input('请输入汉诺塔层数:'))
- hanoi = (n,'x','y','z')

学习Python中遇到的实际困难,汉诺塔程序,希望对大家有帮助,
详解如下:
最开始我遇到的困难时定义的hanoi()函数调用的过程中,x,y,z的顺序看不懂,其实换一种思想,
不论怎么移动,都可以将三根柱子分为,起始柱,辅助柱,目标柱
第一步:将n-1个盘子从x移动到y 实际情况是:x为起始柱,z为辅助柱,y为目标柱
第二步:将第n个盘子从x移动到z 实际情况是:x为起始柱,y为辅助柱,z为目标柱
第三步:将在y柱上的n-1个盘子从y移动到z 实际情况是:y为起始柱,x为辅助柱,z为目标柱
故调用结果为:
haooi (n-1,x,z,y)
hanoi (1,x,y,z)
hanoi (n-1,y,x,z)
希望对大家有帮助!!!更多福利下方领取哦!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。