汉诺塔 问题C/C++代码师范
来源:互联网 发布:意大利知乎 编辑:程序博客网 时间:2024/04/24 07:33
/*
*有A、B、C三座塔,其中A塔上有从小到大的编号从1到n依次累加的n个塔,
*要求将A上的n个塔移动到C上,移动中不能把号码大的塔放在号码小的塔上面*
*/
#include <iostream>
using namespace std;
int m =0; //全局变量记录移动次数
int move (char A, int No, char C)
{
cout<<++m<<": "<<"move "<<No<<" from "<<A<<" to "<<C<<";"<<endl; //将No号塔从A移动到C;
return 0;
}
int Hanoi(int n, char A, char B,char C)//将 n个盘子从A街道B移动到C;
{
if(0==n)
{
cout<<"The Number of Plates is "<<n<<endl;
return 0;
}
else if(1==n)
{
move(A,1,C);
return 0;
}
else
{
Hanoi(n-1,A,C,B);
move(A,n,C);//将n号塔直接从A移动到C
Hanoi(n-1,B,A,C);
}
}
int main(void)
{
char A, B, C;
A='A';
B='B';
C='C';
Hanoi(4, A, B, C);
cout<<"Main is over!"<<endl;
return 0;
}
*有A、B、C三座塔,其中A塔上有从小到大的编号从1到n依次累加的n个塔,
*要求将A上的n个塔移动到C上,移动中不能把号码大的塔放在号码小的塔上面*
*/
#include <iostream>
using namespace std;
int m =0; //全局变量记录移动次数
int move (char A, int No, char C)
{
cout<<++m<<": "<<"move "<<No<<" from "<<A<<" to "<<C<<";"<<endl; //将No号塔从A移动到C;
return 0;
}
int Hanoi(int n, char A, char B,char C)//将 n个盘子从A街道B移动到C;
{
if(0==n)
{
cout<<"The Number of Plates is "<<n<<endl;
return 0;
}
else if(1==n)
{
move(A,1,C);
return 0;
}
else
{
Hanoi(n-1,A,C,B);
move(A,n,C);//将n号塔直接从A移动到C
Hanoi(n-1,B,A,C);
}
}
int main(void)
{
char A, B, C;
A='A';
B='B';
C='C';
Hanoi(4, A, B, C);
cout<<"Main is over!"<<endl;
return 0;
}
阅读全文
0 0
- 汉诺塔 问题C/C++代码师范
- C 代码-----问题记录
- C代码 问题
- c代码--快速排序问题
- c代码--快速排序问题
- C/C++ 代码换行问题
- 约瑟夫问题 C语言代码
- C/C++ 代码换行问题
- c语言各类问题 代码
- C/C++ 代码换行问题
- 八数码问题C代码
- n皇后问题--c代码
- C语言:伯努利-欧拉装错信封问题的C语言代码
- C++Primer 第四版的代码问题
- 骑士游历问题(C语言代码)
- 集邮爱好者的问题C语言代码
- emacs中c代码的缩进问题
- 编程算法 - 部分和问题 代码(C)
- ZOJ Tempter of the Bone
- (3)队列
- 注释转换(C注释风格-C++注释风格)
- 优化术语定义
- 支付网关设计精要(Ping++ 联合创始人 赵宇)
- 汉诺塔 问题C/C++代码师范
- javaseday08(继承构造函数,final,抽象)
- 我有一个梦想
- Vector的使用方法
- 【HDU 1010 Tempter of the Bone】 + DFS + 减枝
- 机器学习实战---kNN
- 多页爬取数据
- 小王子的树洞
- php sys_getloadavg