主题:新手求助hanoi问题
#include <stdio.h>
void move(int n,int x,int y,int z)
{
if(n==1)
printf("%c-->%c\n",x,z);
else
{
[color=FF0000]move(n-1,x,z,y);
printf("%c-->%c\n",x,z);
move(n-1,y,x,z);[/color] }
}
void main()
{
int h;
printf("\ninput number:\n");
scanf("%d",&h);
printf("the step to moving %2d diskes:\n",h);
move(h,'a','b','c');
}
input number:
4
the step to moving 4 diskes:
a→b
a→c
b→c
a→b
c→a
c→b
a→b
a→c
b→c
b→a
c→a
b→c
a→b
a→c
b→c
可以告诉我,这个结果是怎么一步一步出来的吗?谢谢了
红色那里的递归我不理解。
void move(int n,int x,int y,int z)
{
if(n==1)
printf("%c-->%c\n",x,z);
else
{
[color=FF0000]move(n-1,x,z,y);
printf("%c-->%c\n",x,z);
move(n-1,y,x,z);[/color] }
}
void main()
{
int h;
printf("\ninput number:\n");
scanf("%d",&h);
printf("the step to moving %2d diskes:\n",h);
move(h,'a','b','c');
}
input number:
4
the step to moving 4 diskes:
a→b
a→c
b→c
a→b
c→a
c→b
a→b
a→c
b→c
b→a
c→a
b→c
a→b
a→c
b→c
可以告诉我,这个结果是怎么一步一步出来的吗?谢谢了
红色那里的递归我不理解。