程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 遞歸漢諾塔,漢諾塔

遞歸漢諾塔,漢諾塔

編輯:關於C語言

遞歸漢諾塔,漢諾塔


/*漢諾塔的玩法:  * 游戲的規則:將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 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved