Ads 468x60px

##EasyReadMore##

08 9月, 2010

C 程式語言 <Hanoi漢諾塔>

#include <stdio.h>
#include <stdlib.h>
void hanoi(int n, char A, char B, char C)
{
if(n == 1)
{       
  printf("%c -> %c\n", A, C);   
}   
  else
  {       
   hanoi(n-1, A, C, B);       
   printf("%c -> %c\n", A, C);
   hanoi(n-1, B, A, C);   
  }
}
int main(void)
{   
int n;   
printf("碟子數:");   
scanf("%d", &n);   
hanoi(n, '1', '2', '3'); 
system("PAUSE");
return 0;
}

漢諾塔有3根柱子
玩法就是把"柱子1"的所有碟子全部移動到"柱子3"
但全部到"柱子3"時,碟子的順序要一樣!! *這是顯示自解過程的程式!!

以下是程式執行後的結果... 
註: 1 -> 2 (表示由柱子1移動到柱子2)
例一:
碟子數: 1
1 -> 3
請案任意鍵繼續...
例二:
碟子數: 2
1 -> 2
1 -> 3
2 -> 3
請案任意鍵繼續...
例三:
碟子數: 3
1 -> 3
1 -> 2
3 -> 2
1 -> 3
2 -> 1
2 -> 3
1 -> 3
請案任意鍵繼續...

0 意見:

張貼留言

 
Blogger Templates