2010年5月18日 星期二

河內塔(Hanoi tower)

不知道河內塔是什麼嗎?請點我

遊戲規則:
1.每次只能移動一個盤子
2.大盤子不可以在小盤子的上面

程式碼:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

void HNTower(int,char,char,char);
int main() {
    int n;
    char A = 'A',B = 'B',C = 'C';
    scanf("%d",&n);
    HNTower(n,A,B,C);
    system("PAUSE");
    return 0;
}
void HNTower(int n,char a,char b,char c) {
    if(n == 1)
        printf("Move dish no.1 from %c to %c\n",a,c);
    else{
        HNTower(n - 1,a,c,b);
        printf("Move dish no.%d from %c to %c\n",n,a,c);
        HNTower(n - 1,b,a,c);
    }
}
參考看看吧。

 

沒有留言:

張貼留言