/*汉诺塔问题*/ #include <stdio.h> #include <stdlib.h> //定义n为移动的层数,x,y,z分别代表三根柱子,表示把前n层塔牌从x借助y移动到z void move(int n,char x,char y,char z) { if(n == 1) { printf("从 %c 移动到 %c \n",x,z); } else { move(n-1,x,z,y); printf("从 %c 移动到 %c \n",x,z); move(n-1,y,x,z); } } int main() { int m; // char X,Y,Z; printf("请输入层数: \n"); scanf("%d",&m); move(m,‘X‘,‘Y‘,‘Z‘); }
时间: 2024-10-11 22:17:59