首页 > 其他 > 详细

汉诺塔问题

时间:2015-01-10 15:08:17      阅读:250      评论:0      收藏:0      [点我收藏+]

假设有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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!