看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')语句了,而不是结束。
慕桂英3389331
相关分类