#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
請案任意鍵繼續...
Hanoi漢諾塔
誰在線上
正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客