2010年5月18日 星期二

河內塔(Hanoi tower)

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

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

程式碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#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);
}
}
參考看看吧。

 

沒有留言:

張貼留言