這兩天玩了玩漢諾塔的游戲斟览,對(duì)漢諾塔有了解了一點(diǎn)扫外。大概就是轴猎,要先把最大的那一個(gè)移到C柱子上嵌莉,就要把A柱子最大的上面那些圓盤的借助C柱子移到B柱子上,在把A上最大的移到C上捻脖,最后把B上的圓盤借助A移到C锐峭。
/*漢諾塔*/
#include<stdio.h>
void move(int x,char A,char B);
int HanoTower(int x,char A,char B,char C);
int main(){
int x;
char A='A',B='B',C='C';//三個(gè)字母代表A,B,C三個(gè)塔
printf("這是一個(gè)漢諾塔的移動(dòng)次序問題\n");
printf("請(qǐng)輸入漢諾塔的層數(shù):\n");
scanf("%d",&x);
HanoTower(x,A,B,C);
}
int HanoTower(int x,char A,char B,char C){
if(x!=1){
HanoTower(x-1,A,C,B);
move(x,A,C);
HanoTower(x-1,B,A,C);
}
else move(x,A,C);
return 0;
}
void move(int x,char A,char B){
static int count=0;
count++;
printf("第%-2d次移動(dòng),%d從%c->%c\n",count,x,A,B);
}