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)
希望对大家有帮助!!!更多福利下方领取哦!