码迷,mamicode.com
首页 > 其他好文 > 详细

汉诺塔问题

时间:2015-01-10 15:08:23      阅读:113      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!