遞歸漢諾塔,漢諾塔
/*漢諾塔的玩法:
* 游戲的規則:將A柱上的盤子移動到C柱上,大盤必須在小盤之上。
* 1 當A柱上只有一個盤子的時候,直接移動到C柱上;
* 2 當A柱上有兩個盤子的時候,
* 將A柱上的1盤(從上到下編號)移動到B柱,
* 將A柱上的2盤移動到C柱,
* 將B柱上的1盤移動到C柱;
* (將A上的1~n-1盤---->B柱,將A柱上n---->C柱,B柱上的1~n-1盤---->C柱)
* 3 當A柱上有三個盤子的時候,將A柱上的1~2盤移動到B柱,
* 將A柱上的3盤移動到C柱,
* 將B柱上的1~2盤移動到C柱
* (將A上的1~n-1盤---->B柱,將A柱上n---->C柱,B柱上的1~n-1盤---->C柱)
* n 當A柱上有n個盤子的時候,將A柱上的1~n-1盤移動到B柱,
* 將A柱上的n盤移動到C柱,
* 將B柱上的1~n-1盤移動到C柱。
* (將A上的1~n-1盤---->B柱,將A柱上n---->C柱,B柱上的1~n-1盤---->C柱)
* */
1 #include<stdio.h>
2
3 void Hanoi(int count,char a,char b,char c){
4 if(count == 1){
5 printf("FROM %c TO %c\n",a,c);
6 }else
7 {
8 Hanoi(count-1,a,c,b);
9 printf("FROM %c TO %c\n",a,c);
10 Hanoi(count-1,b,a,c);
11 }
12 }
13 int main(){
14 printf("please input the number of Hanoi:");
15 int n;
16 scanf("%d",&n);
17 Hanoi(n,'A','B','C');
18 return 0;
19 }