递归算法汉诺塔C语言
递归算法汉诺塔原理C语言
#include<stdio.h>
#include<string.h>
void move(char x,char y){
printf("%c--%c ",x,y);
}
void hanoi(int n,char a,char b,char c){
if(n>0){
hanoi(n-1,a,c,b);
move(a,b);
hanoi(n-1,c,b,a);
}
}
int main(){
int n;
scanf("%d",&n);
hanoi(n,'A','B','C');
return 0;
}
hanoi(n-1,a,c,b);表示把A柱上的n-1个圆盘由A移动到C
move(a,b)表示把A柱上最后一个圆盘由A移动到B
hanoi(n-1,c,b,a);表示把之前由A移动到C的n-1个圆盘再移动到B上去
以输入n为3举例
结果