遞歸算法漢諾塔C語言
-
- **遞歸算法漢諾塔原理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舉例
結果