#include <stdio.h>
int main()
{
int n;
void asd (int,char,char,char);
scanf("%d",&n);
asd(n,'A','B','C');
return 0;
}
void asd (int n,char a,char b,char c)
{ ;
void move(int n,char a,char c);
if(n<=1)
{
printf("Move disk 1 from %c to %c\n",a,c);
}
else
{
asd(n-1,a,c,b);
move (n,a,c);
asd(n-1,b,a,c);
}
}
void move(int n,char a,char c)
{
printf("Move disk %d from %c to %c\n",n,a,c);
}
代码奉上
看看流程
这个题就是利用递归的思想不断将n-1个塔看成整体,然后通过解决三个塔的问题,来递推n个塔的问题