/*汉诺塔问题*/
#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‘);
}
原文:http://www.cnblogs.com/devinblog/p/4166005.html