递归问题~~!!大虾帮帮忙
#include <stdio.h>#include <string>
extern int x=0;
void hanoi(int ,char ,char ,char);
void moveTo(int ,char ,char );
int main()
{
int i;
char a;
while(1)
{
printf("输入1计算,其他任意键退出\n");
scanf("%c",&a);
switch(a)
{
case '1':
printf("请输入层数:");
scanf("%d",&i);
hanoi(i,'A','B','c');
printf("计算%d次\n",x);
break;
default:
goto xxa;
}
getchar();
}
xxa:
return 0;
}
void hanoi(int n,char fr,char to,char by)
{
if (n<=0)
return;
if (n==1)
{
moveTo(n,fr,to);
return;
}
hanoi(n-1,fr,by,to);
moveTo(n,fr,to);
hanoi(n-1,by,to,fr);
}
void moveTo(int n,char fr,char to)
{
printf("%d from %c to %c\n",n,fr,to);
x++;
}
汉诺塔问题的递归写法
看不懂