关于hanoi塔问题中hanoi(n-1,one,three,two)的执行方式
本帖最后由 syr7441 于 2018-11-25 15:44 编辑假设程序中当n=3时,执行函数hanoi(n-1,one,three,two),n=3-1,one='A',two='C',three='B'。
然后此时n!=1,继续调用本函数hanoi(n-1,one,three,two),n=2-1,然后one,two,three的值却发生了改变,变成了one='A',two='B',three='C'?
求大神解答。为什么依然是调用hanoi(n-1,one,three,two),但one,two,three的值却发生了改变?
我想问的是在上面的程序中明明相同的调用了hanoi(n-1,one,three,two),改变的应该只有n-1的值才对,为什么one,two,three的值也发生了改变。我在使用单步调试时看到程序在判断n!=1时执行完hanoi(n-1,one,three,two)后是跳到开头继续判断n!=1然后接着执行hanoi(n-1,one,three,two)的,那明明执行的是相同的语句,one,two,three的位置也没有发生变化啊,为什么值会发生改变?
页:
[1]