[求助]汉诺塔问题苦思10小时以上,还不是不太理解。哪位大人是否可以帮忙解答
void move(char x,char y){
printf("%c-->%c\n",x,y);
}
void hanoi(int n,char a,char b,char c)
{
if(n==1)move(a,c);
else
{
hanoi(n-1,a,c,b);
move(a,c);
hanoi(n-1,b,a,c);
}
}
main()
{
int m;
printf("input the number of diskes:");
scanf("%d",&m);
printf("The step to moving %3d diskes:\n",m);
hanoi(m,'A','B','C');
getch();
}
当n==2时,汉诺塔用递归移动的步骤都能理解了
,但n==3时,A-C, A-B, C-B, A-C,B-A, B-C,A-C,主要是不能理解递归时,C-B,B-A,B-C 是哪个函数做实参的。抱歉,头想的有点糊涂了,表达不太清楚