鱼C论坛

 找回密码
 立即注册
查看: 1923|回复: 7

[已解决]汉诺塔已解决

[复制链接]
发表于 2020-8-5 11:53:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
形参和实参   ----------------只写第一次递归
def hanota(n,x,y,z):
    if n == 1:
        print(x,'--->',z)
    else:
        hanota(n-1,x,z,y)#将前n-1个盘子从x移到y上
        print(x,'-->',z)#将底下的最后一个盘子从x移到z
        hanota(n-1,y,x,z)#将y的n-1个盘子移到z上

>>> hanota(3,"a","b","c")

hanota(n,x,y,z)   函数未调用之前是形参  
>>> hanota(3,"a","b","c")   开始调用传入实参
传入实参  hanota(3,x="a",y="b",z="c")
不等于1进入else
再次调用hanota(2,"a","c","b")----注意了
这个时候hanota(2,x="a",y="c",z="b")
不等于1再次进入else
这个时候分支1为--hanota(1,"a","b","c")----------这个分支开始递归,为hanota(1,x="a",y="b",z="c")  1==1  print("a",'--->',"c")
分支2为print(x,'-->',z)---------------第二次打印x="a"  z="b"(这个x和z是hanota(2,x="a",y="c",z="b")这里面的) ,所以打印结果为print("a",'--->',"b")
分支3为hanota(1,"c","a","b")--------第三次打印开始递归hanota(1,x="c",y="a",z="b")  ,,,print(x,'--->',z),,, print结果为("c",'--->',"b")

各位大佬,鱼友们,昨夜顿悟。我分析的对吗
最佳答案
2020-8-5 11:59:09
对的。就是酱紫
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-5 11:59:09 | 显示全部楼层    本楼为最佳答案   
对的。就是酱紫
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-5 12:38:27 | 显示全部楼层

谢谢大佬前几次的指点,非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-6 11:55:53 | 显示全部楼层
请问一下,计算机怎么知道a,b,c的位置怎么比变换的,为什么n=2时x=a,z=b
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-6 17:50:26 | 显示全部楼层
Bessyyi 发表于 2020-9-6 11:55
请问一下,计算机怎么知道a,b,c的位置怎么比变换的,为什么n=2时x=a,z=b

这位鱼友,我也是刚学的,我理解的是
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-6 17:51:56 | 显示全部楼层
Bessyyi 发表于 2020-9-6 11:55
请问一下,计算机怎么知道a,b,c的位置怎么比变换的,为什么n=2时x=a,z=b

hanota(3,"a","b","c")   开始调用传入实参
传入实参  hanota(3,x="a",y="b",z="c")
不等于1进入else
再次调用hanota(2,"a","c","b")----注意了-------hanota(2,x,z,y)再次调用函数的时候变的
这个时候hanota(2,x="a",y="c",z="b")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-7 08:42:22 | 显示全部楼层
] 一起打卡学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-7 09:58:59 | 显示全部楼层

OK,加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 03:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表