#include <stdio.h>
int i=1;
void m(int x,char a,char c){
printf("第%d步:把第%d个盘子从%c移到%c\n",i++,x,a,c);
}
void h(int x,char a,char b,char c){
if(x==1)
m(x,a,c);
else{
h(x-1,a,c,b);
m(x,a,c);
h(x-1,b,a,c);
}
}
void main(){
int x;
char a='A',b='B',c='C';
printf("A塔上有几个盘子?\n");
scanf("%d",&x);
h(x,a,b,c);
}
汉诺塔问题: 有一个梵塔,塔内有三个座儿A, B, C. A座上有n个盘子,盘子大小不等,大的在下,小的在上。问:如何把盘子从A座移动到C座,要求每次只允许移动一个盘子,并且在移动过程中,3个座上的
最新推荐文章于 2024-04-29 20:07:41 发布