问题是这样的:古代有一个梵塔,塔内有3个座A,B,C。开始A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这个64个塔盘子从A座移到C座,但规定只允许移动一个盘,且移动过程中3个座上都始终保持大盘在下,小盘在上,移动过程中可以借助B座,要求输出移动盘子的步骤。
代码:
#include<stdio.h>
int main(){
void hanoi(int n,char one,char two,char three);
int m;
scanf("%d",&m);
hanoi(m,'A','B','C');
return 0;
}
void hanoi(int n,char one,char two,char three){
void move(char x,char y);
if(n==1)
move(one,three);
else{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}
void move(char x,char y){
printf("%c->%c\n",x,y);}