不懂啊,,
希望老师可以把这个程序的步骤解释一下 在这块很多同学都卡住了
希望老师可以把这个程序的步骤解释一下 在这块很多同学都卡住了
2015-04-18
为了方便,大写我就不加引号了
move(4,A,B,C)
||
move(3,A,C,B) 8.A-->C move(3,B,A,C)
|| ||
move(2,A,B,C) 4 .A-->B move(2,C,A,B) move(2,B,C,A) 12.B-->C move(2,A,B,C)
|| ||
move(1,A,C,B)2.A-->Cmove(1,B,A,C)move(1,C,B,A)6.C-->Bmove(1,A,C,B)写不下了这边类似,中间是10.B-->A14.A-->C
|| || || ||
A-->B 3. B-->C 5. C-->A 7. A-->B 9. B-->C 11. C-->A 13. A-->B 15. B->C 你画个树图一下子就看清了,从左至右打印,每一次都会执行else里面的语句分解一次,
要理解的话就把move(n,a,b,c)当做a经过b到达c,题目里面有解释,先将n-1个从a经过c到达b(move(n-1,a,c,b)),然后最后一个从a到c(直接print),最后把n-1个从b经过a到c(move(n-1,b,a,c))
举报