没有b-->c 但是输出了这个
def move(n, a, b, c): if n == 1: print a, '-->', c return move(n-1, a, c, b) print a, '-->', c move(n-1, b, a, c) ###print b, '-->',c move(4, 'A', 'B', 'C') #为啥不用添加一个b-->c 呢 而且 结果里面居然有b-->c 求解惑
def move(n, a, b, c): if n == 1: print a, '-->', c return move(n-1, a, c, b) print a, '-->', c move(n-1, b, a, c) ###print b, '-->',c move(4, 'A', 'B', 'C') #为啥不用添加一个b-->c 呢 而且 结果里面居然有b-->c 求解惑
2017-05-15
看到底部还有一个move(n-1, b, a, c)这个递归函数。
1,n=4 , A , B, C
2,n=3 , A , C, B
3,n=2 , A , B, C
4,n=1 , A , C, B
执行 第四行的 print a, '-->', c, n
打印 print A --> B 1
return 返回 所以这是当n=1这个函数跳出去,跳入到n=2这个函数里面
n = 2 A, B, C
执行 第0行的 print a, '-->', c, n
打印 print A --> C 2
执行第二行的move(n-1, b , a, c)
因为当前的函数是 n = 2 A, B, C
所以依次执行 ,
n = 2
move(2-1, B, A, C)
执行 n==1
执行打印 第4行的 print a, '-->', c, n
打印 B --> C 1
..........
所以以此类推
举报