C++实现汉诺塔算法经典实例
本文所述为汉诺塔算法的C++代码的经典实现方法。
汉诺塔问题描述:3个柱为a、b、c,圆盘最初在a柱,借助b柱移到c柱。需要你指定圆盘数。
具体实现代码如下:
#include<iostream>
usingnamespacestd;
inttimes=0;//全局变量,搬动次数
//第n个圆盘从x柱搬到z柱
voidmove(intn,charx,charz)
{
cout<<"第"<<++times<<"步:将"<<n<<"号盘从"<<x<<"移到"<<z<<endl;
}
//将x柱上按直径自上而下由小到大编号为1至n的n个圆盘按规则搬到z柱上。y用作辅助柱
voidhanoi(intn,charx,chary,charz)
{
if(n==1)
move(1,x,z);//将编号为1的圆盘从x移到z
else{
hanoi(n-1,x,z,y);//将x上编号为1至n-1的圆盘移到y,z作辅助柱
move(n,x,z);//将编号为n的圆盘从x移到z
hanoi(n-1,y,x,z);//将y上编号为1至n-1的圆盘移到z,x作辅助柱
}
}
intmain()
{
intn;
cout<<"3个柱为a、b、c,圆盘最初在a柱,借助b柱移到c柱。请输入圆盘数:";
cin>>n;
hanoi(n,'a','b','c');
system("pause");
return0;
}热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短