|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 conn 于 2015-1-17 09:41 编辑
原始代码
- def hanoi(n, x, y, z):
- if n == 1:
- print (x, '-->', z)
- else:
- hanoi(n-1, x, z, y)#将前n-1的盘子从x移动到y上
- print (x, -->', z)#将最底下的最后一个盘子从x移动到z上
- hanoi(n-1, y, x, z)#将y上的n-1个盘子移动到z上
- n = int(input('请输入汉诺塔的层数:'))
- hanoi(n, 'X', 'Y', 'Z')
复制代码
我对域汉诺塔的移动思路明白,但对应的代码就不是很理解:
- else:
- hanoi(n-1, x, z, y)#将前n-1的盘子从x移动到y上 //为什么参数传的是 X Z Y
- print (x, -->', z)#将最底下的最后一个盘子从x移动到z上
- hanoi(n-1, y, x, z)#将y上的n-1个盘子移动到z上 //为什么第三步的参数是 Y X Z
复制代码
求大神指点。
|
|