思路:
将n-1个盘子移动到B柱
将第n个盘子移动到C柱
将n-1个盘子移动到C柱
main6.c
#include <stdio.h> void move(int n,char x,char y,char z) ; int main(void) { int n; printf("请输入n="); scanf("%d",&n); getchar(); move(n,'X','Y','Z'); return 0; } void move(int n,char x,char y,char z) { if(1 == n) { printf("%c->%c\n",x,z); }else{ move(n-1,x,z,y);//将n-1个盘子从x移动到y move(1,x,y,z);//将x柱子上剩下的一个盘子移动到z柱子上 move(n-1,y,x,z);//将y柱上的n-1个盘子移动到z柱子上 } }