void move(char c1, char c2);
void hannuo(int n, char x, char y, char z)
{
if (n == 1)move(x, z); //递归截止条件
else
{
hannuo(n - 1, x, z, y);//将 n-1个盘子先放到B座位上
move(x, z);//将A座上地剩下的一个盘移动到C盘上
hannuo(n - 1, y, x, z);//将n-1个盘从B座移动到C座上
}
}
void move(char c1, char c2)
{
printf("%c--->%c\n", c1, c2);
}
int main()
{
int n;
printf("input your number");
scanf("%d", &n);
hannuo(n, 'a', 'b', 'c');
return 0;
}
#下面来分析下这个代码里面的递归部分