假设有A、B、C三个轴,有n个直径各不相同、从小到大依次编号为1,2,3……,n的圆盘按照上小下大的顺序叠放在A上。现要求将这n个圆盘移至C轴上并仍按相同顺序叠放,但圆盘叠放时必须遵循下列规则:1.每次只能移动一个圆盘,它必须位于某个轴的顶部;2.圆盘可以插在A、B、C中的任意一个轴上;3.任何时刻都不能将较小的圆盘放置在较大的圆盘上。
代码:
#include<stdio.h>
move(char A,char B)
{
	  printf("%c-->%c\n",A,B);
}
hanio(int n,char A,char B,char C)
{
	  if(n==1)  
		    move(A,C);
	  else
	  {
		    hanio(n-1,A,C,B);
		    move(A,C);
		    hanio(n-1,B,A,C);
	  }
}
int main()
{
	  int n;
	  scanf("%d",&n);
	  hanio(n,‘A‘,‘B‘,‘C‘);
	  return 0;
}
原文:http://www.cnblogs.com/jasonlixuetao/p/4214869.html