1 / 2
文档名称:

汉诺塔递归算法及源码.doc

格式:doc   大小:18KB   页数:2页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

汉诺塔递归算法及源码.doc

上传人:zxwziyou8 2022/4/17 文件大小:18 KB

下载得到文件列表

汉诺塔递归算法及源码.doc

相关文档

文档介绍

文档介绍:用递归法实现汉诺塔
有A,B,C三根棒,开始圆盘放在A棒上,将其移动到C棒上,可在B棒上暂时放置圆盘。
递归分析:
如果只有一个圆盘,则把该圆盘从A棒直接移动到C棒,完成
如果圆盘数量n>1,移动圆盘的过程可分三个步骤:
第一步:用递归法实现汉诺塔
有A,B,C三根棒,开始圆盘放在A棒上,将其移动到C棒上,可在B棒上暂时放置圆盘。
递归分析:
如果只有一个圆盘,则把该圆盘从A棒直接移动到C棒,完成
如果圆盘数量n>1,移动圆盘的过程可分三个步骤:
第一步:将A棒上的n-1个圆盘移动到B棒上
第二步:将A棒上的一个圆盘移动到C棒上
第三步:将B棒上的n-1个圆盘移动到C棒上
用C++实现源代码:
#include <>
#include <>
void hanoi(int n,char a,char b,char c);
long count;
int main()
{
int h;
count=0;
cout<<"Input the number of disc: ";
cin>>h;
hanoi(h,'A','B','C');
return 0;
}
void hanoi(int n,char a,char b,char c)
{
if(n==1)
cout<<setw(5)<<++count<<"th "<<a<<"-->"<<c<<"\n";
else
{
hanoi(n-1,a,c,b);
cout<<setw(5)<<++count<<"th "<<a<<"-->"<<c<<"\n";
hanoi(n-1,b,a,c);
}
}