这里以n=3的情况进行讨论。
实际上每轮做得工作是形参ABC对应柱子的变换,形参分别对应现在要交换的盘子所在的柱子以及中间状态所在的柱子以及最后目标放置的柱子。
每进入一层就是相当于无视上一层那个大的柱子,将它看成一个平地,直到下面的递归结束。换个说法其次就是每一轮递归n-1的时候可以看做把原有的盘子堆消掉一层即可。
void hanio(int n,char a,char b, char c){
if(n==1){
move(a,c);
}
hanio(n-1,a,c,b);
move(a,c);
hanio(n-1,b,c,a);
}