汉诺塔源码

 1 #include"iostream"
 2 using namespace std;
 3 void 移动(int n,char 被移动,char 借助,char 目标)//汉诺塔
 4 {
 5 if (1 == n){
 6 cout << "" << 被移动 <<"移动一个盘子到" << 目标 << endl;
 7 }
 8 else{
 9 移动(n - 1, 被移动, 目标, 借助);
10 移动(1, 被移动, 借助, 目标);
11 移动(n - 1, 借助, 被移动, 目标);
12 }
13 }
14 int main()
15 {
16 int 盘子数;
17 cout << "请输入有几个盘子:";
18 cin >> 盘子数;
19 移动(盘子数,'A','B','C');
20 system("pause");
21 }
 1 #include"iostream"
 2 void move(int n, char a, char b, char c){
 3     if (1 == n)std::cout <<a << "-->" << c << "\n";
 4     else{
 5         move(n - 1, a, c, b);
 6         move(1, a, b, c);
 7         move(n - 1, b, a, c);
 8     }
 9 }
10 int main(){
11     move(3, 'A', 'B', 'C');
12 }

 

posted @ 2013-08-14 02:29  herizai007  阅读(308)  评论(0编辑  收藏  举报