您的位置:首页 > 其它

经典算法――河内之塔

2013-06-16 09:55 218 查看


本题的思路是:当有一个金盘的时候直接从A搬到C即可,当有不止一个金盘的时候,把n-1个金盘搬到B,然后把最后一个盘子搬到C,再把剩下的盘子从B搬到C,即有A->B,B->C,A->C的过程,按照这个思路可以写出下面的代码来解决问题。
#include<iostream>
using namespace std;
void hanoi(int n,char A,char B,char C){
if(n==1)
cout<<"把编号为"<<n<<"的盘子"<<"从"<<A<<"移到" <<C<<endl;
else
{
hanoi(n-1,A,C,B);
cout<<"把编号为"<<n<<"的盘子"<<"从"<<A<<"移到"<<C<<endl;
hanoi(n-1,B,A,C);
}
}
int main(){
int number;
cout<<"请输入金盘的数量:"<<endl;
cin>>number;
hanoi(number,'A','B','C');
return 0;
}
本文出自 “菜鸟的进阶之路” 博客,请务必保留此出处http://beyond316.blog.51cto.com/7367775/1222946
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: