鱼C论坛

 找回密码
 立即注册
查看: 1689|回复: 2

汉诺塔 递归算法的问题

[复制链接]
发表于 2014-11-12 13:51:04 | 显示全部楼层 |阅读模式
50鱼币
我自己有点儿眉目了   。但是思路老是断了,太复杂 ,老是把前面思路搞混乱了大家有没程序流程图  ,或者推荐点不错的资料给我学习下
用c调试有点难看懂   



谢谢各位大大摸摸大

最佳答案

查看完整内容

...这个还有什么思路吗。。。 假设你已经知道了如何将n-1个盘子从三根棍子中的一个搬到另一个,问如何将n-1个盘子从三个盘子中的一个三根棍子中的一个搬到另一个 假设三根棍子编号A,B,C,要将n个盘子从A搬到B,中间可以使用棍子C 用C语言代码表示就是hanno(n,'a','b','c');//void hanno(int nums, char from, char to, char pass); 你只要 1)将n-1个盘子从A搬到C,用C语言表示:hanno(n-1,'a','c','b'); 2)将一个盘子从A搬 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-12 13:51:05 | 显示全部楼层
...这个还有什么思路吗。。。
假设你已经知道了如何将n-1个盘子从三根棍子中的一个搬到另一个,问如何将n-1个盘子从三个盘子中的一个三根棍子中的一个搬到另一个
假设三根棍子编号A,B,C,要将n个盘子从A搬到B,中间可以使用棍子C
用C语言代码表示就是hanno(n,'a','b','c');//void hanno(int nums, char from, char to, char pass);
你只要
1)将n-1个盘子从A搬到C,用C语言表示:hanno(n-1,'a','c','b');
2)将一个盘子从A搬到B,用C语言伪代码表示:打印:将一个盘子从from搬到to
3)将n-1个盘子从C搬到B,用C语言表示:hanno(n-1,'c','b','a');
就OK了.
剩下就是递归的初始情况,当n=0的时候什么都不做
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-11-12 15:57:22 | 显示全部楼层
仰望天上的光 发表于 2014-11-12 13:51
...这个还有什么思路吗。。。
假设你已经知道了如何将n-1个盘子从三根棍子中的一个搬到另一个,问如何将n- ...

谢谢,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 03:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表