一题掌握SSS级递归算法之汉诺塔


经典算法每日一题之汉诺塔

之因此叫作写烂的编程算法问题,是由于解法处处都是,随便百度一下,遍地都是,web

这里就不过度叙说了。算法

什么是 汉诺塔

河内塔(又称汉诺塔)问题,就是在一块木板上有三个立柱,在柱1上放着三个圆盘,小的在上面,大的在下面(初始状态)。让被试将在柱1上的三个圆盘移到柱3上面(目标状态)。条件是:每次只能移动任何一个柱子上面的一个圆盘,但大的圆盘不能放在小的圆盘上。通用问题解决者的解决过程便是手段—目的分析的策略。编程

解题思路

递归法windows

  1. 把A上面n-1个盘子移动到B上。微信

  2. 把A上最后一个移动到C;app

  3. 把B上n-1个移动到A上,再把B上最后一个移动到C;编辑器

如此循环2,3,步骤,直到把最后一个盘子移动到C上。学习

实现代码
测试结果

汉诺塔能够经过非递归算法解析,有兴趣的读者能够尝试下。测试






文章都是手打原创,天天最浅显的介绍C语言、C++,windows知识,喜欢个人文章就关注一波吧,能够看到最新更新和以前的文章哦。若是足下基础比较差,不妨关注下,人人均可以学习的视频教程,通俗易懂,深刻浅出,一次只讲一个知识。不深奥,不须要钻研,在公交、在地铁、在厕所均可以观看,随时随地涨姿式。flex

据说转发文章

会给你带来好运


微信号:coolmoying
今日头条:C语言基础
-扫码关注我-



本文分享自微信公众号 - C语言编程基础(goodStudyCode)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索