Hanoi漢諾塔

回覆文章
tony
文章: 585
註冊時間: 2012-02-26, 07:04
聯繫:

Hanoi漢諾塔

未閱讀文章 tony »

#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
請案任意鍵繼續...
回覆文章

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客