汉诺塔游戏
想求助各位大神,在汉诺塔游戏中为什么print (x,"--->",z)可以代表将最底下一个盘子从x移动到z上?print不是只是一个打印程序吗?将括号里面的打印出来?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')
print 确实是打印,只是单纯的将你的移动结果打印出来,并没有移动的作用
移动过程是在递归过程,比如这里的:
hanoi(n-1, x, z, y)
和
hanoi(n-1, y, x, z)
本帖最后由 liuzhengyuan 于 2020-7-2 19:08 编辑
逗号(“,”)相当于“拼接”
把 x 变量的值、字符串“-->”、以及 z 变量的值 拼接起来
是函数中的 hanoi 函数实现了移动
谈如何简单懒汉式理解汉诺塔
https://fishc.com.cn/thread-126371-1-1.html
(出处: 鱼C论坛)
(原创首发)递归典型——汉诺塔问题详解
https://fishc.com.cn/thread-116890-1-1.html
(出处: 鱼C论坛)
页:
[1]