为了账号安全,请及时绑定邮箱和手机立即绑定

汉诺塔递归问题解释

汉诺塔递归问题解释

Helenr 2018-09-15 14:13:00
看JavaScript语言精粹这本书的时候,看到汉诺塔的递归算法,有些不明白的地方,望指点。代码如下:var hanoi = function(disc,src,aux,dst){  if(disc>0){    console.log("1:::"+disc);     hanoi(disc-1,src,dst,aux);    console.log("2:::"+disc);    console.log('Move disc '+ disc + ' from '+src+' to '+dst);     hanoi(disc-1,aux,src,dst);    console.log("3:::"+disc);      } } hanoi(3,'src','aux','dst');执行过程贴了部分如下:1:::31:::21:::12:::1Move disc 1 from src to dst3:::12:::2Move disc 2 from src to aux1:::12:::1Move disc 1 from dst to aux我想知道为什么disc参数值变成0的时候,怎么就能执行后面的console('Move disc 1 from src to dst')语句了,而不是结束。
查看完整描述

1 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

第一个hanoi(0,'src','aux','dst');跳出回到hanoi(1,'src','aux','dst')继续往下就是 console.log("2:::"+disc);

console.log('Move disc '+ disc + ' from '+src+' to '+dst);

没什么毛病啊,你一步一步撸下去就是这么个结果啊,有什么问题吗?
觉得混乱用控制台的断点调试下就懂了


查看完整回答
反对 回复 2018-10-24
  • 1 回答
  • 0 关注
  • 496 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信