首页 > 编程语言 > 详细

汉诺塔(C++)

时间:2016-10-17 22:42:00      阅读:184      评论:0      收藏:0      [点我收藏+]

#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++)

原文:http://www.cnblogs.com/DZRDerek/p/5971381.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!