回忆
本帖最后由 小伤口 于 2021-3-10 13:43 编辑def hanoi(n,x,y,z):
if n==1:
print(x,'-->',z)
else:
hanoi(n-1,x,z,y)
print(x,'-->',z)
hanoi(n-1,y,x,z)
n=int(input('请输入汉诺塔的层数:'))
hanoi(n,'x','y','z')
不理解代码里面只有x-->z为什么结果x z可以变换成yzx之类的{:10_243:} <font color="red">[已解决]</font>头疼的汉诺塔
https://fishc.com.cn/thread-178982-1-1.html
(出处: 鱼C论坛)
参考这篇帖子里的回答 因为每次递归的时候,xyz是会交换位置的,看着是只有 print(x,'-->',z)但是实际上每次的xz每次递归时都会变化
你把程序中最后一句话的参数改成abc 或许更好理解
def hanoi(n,x,y,z):
if n==1:
print(x,'-->',z)
else:
hanoi(n-1,x,z,y)
print(x,'-->',z)
hanoi(n-1,y,x,z)
n=int(input('请输入汉诺塔的层数:'))
hanoi(n,'a','b','c')
假设n为3,看下图
页:
[1]