请教C++的汉诺塔问题(谁能改改我的程序)

来源:百度知道 编辑:UC知道 时间:2024/07/04 07:40:57
请求修改以下程序,使其输出5个步骤后就换行!
void method(int n,char a,char b,char c)
{
if(n==1)
{
cout<<a<<"-->"<<c<<" ";
}
else if(n>1)
{
method(n-1,a,c,b);
cout<<a<<"-->"<<c<<" ";
method(n-1,b,a,c);
}
}
int main(int argc, char* argv[])
{
int n;
char ch1='A',ch2='B',ch3='C';
cin>>n;
method(n,ch1,ch2,ch3);
return 0;
}
或者是另外给我一段程序,能输出5步换行的,谢谢!

void method(int n,char a,char b,char c)
{

static int d=0 ;

if(n==1)
{
if (++d%5)
cout<<a<<"-->"<<c<<" ";
else cout<<a<<"-->"<<c<<endl;

}
else if(n>1)
{
method(n-1,a,c,b);

if (++d%5)
cout<<a<<"-->"<<c<<" ";
else cout<<a<<"-->"<<c<<endl;
method(n-1,b,a,c);
}
}

你自己可以输入数目
move(int n,int x,int y,int z)
{
if(n==1)
printf("%c-->%c\n",x,z);
else
{
move(n-1,x,z,y);
printf("%c-->%c\n",x,z);
move(n-1,y,x,z);
}
}
main()
{
int h;
printf("\ninput number:\n");
scanf("%d",&h);
printf("the step to moving