n阶Hanoi塔问题:假设有3个分别叫X,Y,Z的塔,在塔X上插有n个直径大小个不同的圆盘,编号为1,2,3,...,n。要求将这n个圆盘依次移动到Z塔。
void Hanoi(int n,char x,char y,char z)
{
if(n==1)
move(x,1,z); //将编号为1的圆盘从x塔搬到z塔
else{
Hanoi(n-1,x,z,y); //将编号为1到n-1的圆盘从x搬到y,z为辅助塔
move(x,n,z); //将剩下的编号为n的圆盘从x搬到z
Hanoi(n-1,y,x,z); //将编号为1到n-1的圆盘从y搬到z,z为辅助塔
}
}
void move(char x,int i,char y)
{
MOVETIMES++;//全局变量
}