#include <stdio.h>
#include <stdlib.h>
void hanio(int n,char A,char B,char C)
{
if(n==1){
printf("Move sheet %d from %c to %c\n",n,A,C);
}
else{
hanio(n-1,A,C,B);
//利用递归,将A上n-1个盘子,先挪到位子B上
printf("Move sheet %d from %c to %c\n",n,A,C);
//上面的n-1个盘子已经都放到位子B上,所以第n个盘子,直接挪到位子C上
hanio(n-1,B,A,C);
//但现在上面的n-1个盘子还都在位子B上,需要把它们放到位子C上
}
}
int main()
{
int n;
printf("Enter the number of the sheet: ");
scanf("%d",&n);
hanio(n,'A','B','C');
return 0;
}
河内之塔
最新推荐文章于 2021-04-05 22:40:47 发布