首页 > 代码库 > 汉诺塔(C++)

汉诺塔(C++)

#include<iostream>
using namespace std;
void write(int x)
{
if(x==0)
{
putchar(‘0‘);
return ;
}
if(x<0)
{
putchar(‘-‘);
x=-x;
}
int len=0,buf[15];
while(x)
{
buf[len++]=x%10;
x/=10;
}
for(int i=len-1;i>=0;i--)putchar(buf[i]+‘0‘);
return ;
}
int read()
{
int x=0,f=1;char ch=getchar();
while(ch<‘0‘||ch>‘9‘)
{
if(ch==‘-‘)f=-1;
ch=getchar();
}
while(ch>=‘0‘&&ch<=‘9‘)
{
x=x*10+ch-‘0‘;
ch=getchar();
}
return x*f;
}
int n,m,nthstep=0;
void move(int n,char a,char c,char b)
{
if(n==0)return ;
move(n-1,a,b,c);
nthstep++;
if(nthstep==m)
{
cout<<a<<"-->"<<c;
exit(0);
}
move(n-1,b,c,a);
return ;
}
int main()
{
n=read();
m=read();
move(n,‘A‘,‘C‘,‘B‘);
return 0;
}

汉诺塔(C++)