#include <stdio.h>
//把n个盘子从x起始柱经由y过渡柱移动到z终点柱
void hanoi(int n, char x,char y,char z);
//从x柱子移动到z柱子
void move(char x,char z);
int main(){
int n;
printf("请输入柱子的个数:\n");
scanf("%d",&n);
hanoi(n,'a','b','c');
return 0;
}
void hanoi(int n,char x,char y,char z){
if(1 == n){
move(x,z);
}else{
hanoi(n-1,x,z,y);
move(x,z);
hanoi(n-1,y,x,z);
}
}
void move(char x,char z){
printf("%c -> %c\n",x,z);
}
【数据结构】汉诺塔问题
最新推荐文章于 2023-05-01 14:07:00 发布