C语言算汉诺塔,递归时的输出是怎么一步一步来的?如图,求大神帮忙
展开全部
例如,n=3,三个柱子是A B C
那么是这样:
调用的层次已经用制表符分开
hanoi(3, A, B, C)=>
hanoi(2, A, C, B)=>
hanoi(1, A, B, C)
=>move(1, A, C)
move(A, B)
hanoi(1, C, A, B)
=>move(C, B)
move(A, C)
hanoi(2, B, A, C)=>
hanoi(1, B, C, A)=>
move(1, B, A)
move(B, C)
hanoi(1, A, B, C)=>
move(1, A, C)
追问
move(1,a,c)之后是怎么变到hanoi(1,c,a,b)的呀
追答
都是根据你贴的代码啊
hanoi(2, A, C, B)
展开后就是
hanoi(1, A, B, C)
move(A, B)
hanoi(1, C, A, B)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询