#include<stdio.h>intc=0;voidmove(charx,intn,charz){ printf("%d.Movedisk%dfrom%cto%c\n",++c,n,x,z);}voidhanoi(intn,charx,chary,charz)//将塔座x上按直径由小到大且自上而下编号1至n的n个圆盘按规则搬到//塔座z上,y用作辅助塔。//搬动操作move(x,n,z)可定义为(c是初值为0的全局变量对搬动计数)://printf("%i.Movedisk%ifrom%cto%c\n",++c,n,x,z);{ if(n==1) move(x,1,z);//将编号为1的圆盘从x移到z else{ hanoi(n-1,x,z,y);//将x上编号为1至n-1的圆盘移到y,z作辅助塔 move(x,n,z);//将编号为n的圆盘从x移动啊z hanoi(n-1,y,x,z);//将y上编号为1至n-1的圆盘移到z,x作辅助塔 }//else}//hanoivoidmain(){ intn;charx,y,z; printf("请输入汉诺塔的圆盘数n:"); scanf("%d",&n); hanoi(n,'x','y','z');}