递归思路总是搞不明白,就比如汉诺塔。
1.为什么汉诺塔能用函数递归调用解决(或者说怎样判断一个问题它是否能用递归思想,千万别跟我说阶乘的例子那个我知道)?2.汉诺塔的自身调用结束条件是什么?
代码如下,请帮忙分析一下上面的问题。(码盲表示压力太大学递归,求指导鼓励...)
程序代码:#include<stdio.h>
void move(int n,int x,int y,int z)
{
if(n==1)
printf("%c----->%c ",x,z);
else
{
move(n-1, x, z, y);
printf("%c----->%c ",x,z);
move(n-1,y,x,z);
}
}
void main()
{
int h;
printf("please input a number:\n");
scanf("%d",&h);
printf("the step to moving %2d diskes:\n",h);
move(h,'a','b','c');
}











