简单的汉诺塔问题解法代码

2016-02-19 11:04 207 1 收藏

今天图老师小编给大家展示的是简单的汉诺塔问题解法代码,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!

【 tulaoshi.com - 编程语言 】

以前学东西不扎实,现在捡捡也好,汉诺塔本是C语言开门就学的东西,不过上课那会儿真心听不懂,直到大二了,才明白那是咋回事,我感觉的编程,真的是一张窗户纸,不过捅破要花时间理解吸收。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

题目描述:有一个塔,塔内有A,B,C三个柱子。起初,A柱上有n个盘子,依次由大到小、从下往上堆放,要求将它们全部移到C柱上;在移动过程中可以利用B柱,但每次只能移到一个盘子,且必须使三个柱子上始终保持大盘在下,小盘在上的状态。要求编程输出移动的步骤。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

代码如下:
代码如下:

#includestdio.h
int move(char one,char two)//这个函数就是为了输出的结果直观显示出来,比如只有一个盘子时,输出a--c. 就这样,把移动n个盘子每个步骤显示出来
{
    printf("%c -- %cn",one,two);
}

int hanoi(int n,char one,char two,char three)//是核心函数了
{
    int move(char one,char two);
    if(n==1)//当只有一个盘子时,直接从a柱移到c柱就好,也是递归程序的一个出口
      move(one,three);
    else{   //盘子大于一时
        hanoi(n-1,one,three,two);//先借助c柱把上面的n-1个盘子从a柱全部移动到b柱
        move(one,three);           //这时a柱只剩下一个盘子了,移动到c柱即可
        hanoi(n-1,two,one,three);//将b柱剩下的n-1个盘子借助a柱移动到c柱,任务也就完成了
    }
}
int main()
{
    int n;
    char a,b,c;
    while(scanf("%d",&n)!=EOF)//可以输入多组数据检验结果
       hanoi(n,'a','b','c');
    }

来源:https://www.tulaoshi.com/n/20160219/1596489.html

延伸阅读
馒头是我国一种传统的面食,对于很多人来说都是非常不错的,并且很多人家里也是会不定时的做一些馒头的。那么在家要如何做馒头呢?杂粮馒头如何做呢?其实想要做好馒头并不是那么简单的,在做的过程中会遇到各种问题了,想要做好馒头每一步都不可以错哦。 如何做馒头 材料:面粉250克(约500ml),水140克(140ml),酵母小一匙(约1...
《刺客信条3:兄弟会》全秘密谜题解法 一号谜题 《刺客信条3:兄弟会》无限洗盗贼法 我不知道大家有没有注意到... 小偷任务有一个叫做『a blanket finish』 这个任务要我们杀掉3个骑马的盗贼(不然他们会在那里绕圈圈),而洗盗贼的条件是必须有刺客支援(3个最好) 首先,要追上一名盗贼干掉他 此时对话会出现『Faster!』『Speed​R...
标签: 蛋黄 咖啡
杏仁乳脂卡布奇诺 1、杯中倒杏仁糖浆和煮好的黑咖啡,搅匀。 2、牛奶加热到温热,打到2倍大的奶泡,倒入咖啡。 3、在奶泡上放乳脂软糖和烤过的杏仁片。 卡布奇诺Bagel 1.将双色贝果由侧面剖开成3层。 2.在最下层级中间层分别抹上一层咖啡乳酪酱。 3.将咖啡乳酪酱装入挤花袋内,用花嘴挤出一圈小圆球于作法2上,并放上巧克力...
《轩辕剑外传汉之云》白柳涧的机关解法 会员:goutoua <原创 1、先说明开关名称:四个开关从左到右为                                     ...
标签: 蛋黄 咖啡
卡布奇诺 1.利用打泡器将温牛奶打到成泡沫状为止。 2.将泡沫奶倒入义式浓缩咖啡中即可。(可另外自行添加适量的糖,加了糖的卡布奇诺会更顺口。) 卡布奇诺 1、将咖啡粉放入咖啡壶中,加入100ml水,煮成咖啡倒入杯中。 2、淡奶油倒入碗中用打蛋器搅打至松软起泡。 3、用大汤匙将搅打松软的奶油舀放到煮好的咖啡上,撒上可可粉即可。 ...

经验教程

509

收藏

97
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部