经典算法每日一题之汉诺塔
之所以叫做写烂的编程算法问题,是因为解法到处都是,随便百度一下,遍地都是,
这里就不过分叙说了。
什么是 汉诺塔河内塔(又称汉诺塔)问题,就是在一块木板上有三个立柱,在柱1上放着三个圆盘,小的在上面,大的在下面(初始状态)。让被试将在柱1上的三个圆盘移到柱3上面(目标状态)。条件是:每次只能移动任何一个柱子上面的一个圆盘,但大的圆盘不能放在小的圆盘上。通用问题解决者的解决过程即是手段—目的分析的策略。
解题思路递归法
把A上面n-1个盘子移动到B上。
把A上最后一个移动到C;
把B上n-1个移动到A上,再把B上最后一个移动到C;
如此循环2,3,步骤,直到把最后一个盘子移动到C上。
实现代码 测试结果汉诺塔可以通过非递归算法解析,有兴趣的读者可以尝试下。
结 束 语文章都是手打原创,每天最浅显的介绍C语言、C++,windows知识,喜欢我的文章就关注一波吧,可以看到最新更新和之前的文章哦。如果足下基础比较差,不妨关注下,人人都可以学习的视频教程,通俗易懂,深入浅出,一次只讲一个知识。不深奥,不需要钻研,在公交、在地铁、在厕所都可以观看,随时随地涨姿势。
听说转发文章
会给你带来好运
微信号:coolmoying今日头条:C语言基础-扫码关注我-