汉诺塔问题的移动方法唯一吗?
使用函数递归实现
你说的是使用函数递归调用做吗?
使用函数递归倒是会做,其余倒是没掌握!
这是我原来做题时弄的,不知道对不对你胃口:
include <iostream>
using namespace std;
int main()
{
void hannuota(int,char,char,char);
int n;
cout<<"input the numbers of disks:"<<endl;
cin>>n;
hannuota(n,'A','B','C');
return 0;
}
void hannuota(int n,char x,char y,char z)
{
void move(char,int,char);
if(n==1)
move(x,1,z);
else
{
hannuota(n-1,x,z,y);
move(x,n,z);
hannuota(n-1,y,x,z);
}
}
void move(char getone,int n,char putone)
{
static k=1;
cout<<k<<n<<getone<<putone<<endl;
if(k++%3==0)
cout<<endl;
}