我不明白有三个盘子的时候
这上面是代码,第一个地方和第二个地方的输出我做了标记。
我在草稿纸上推算,的确是第一个盘子要从A移动到C上。但是我不明白这个代码,第一输出为什么会是“A ##--> C”
因为我的理解是当执行“move(3, 'A', 'B', 'C')”这行代码时
n=3,所以if条件不成立,就会向下执行“move(n-1,a,c,b)”这行代码,进入递归,
这个时候n=2,if条件还是不成立,所以还会向下执行“move(n-1,a,c,b)”这行代码,再次进入递归,
这时n=1了,执行if语句,可是这个地方“move(n-1,a,c,b)”这行代码的形参顺序时变化了的,
if语句里面“print a,'##-->',c”这个c的值不应该时B吗?
但是为什么第一行输出的却是“A ##--> C”
(我知道它本身是应该这样的,但是我不理解这个代码为什么会这样输出,我的理解肯定有问题,谢谢各位大神指教)