吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4591|回复: 0
收起左侧

[其他转载] 用递归实现汉诺塔移动步骤

 关闭 [复制链接]
我是菜鸟哦 发表于 2012-8-6 23:14
本帖最后由 我是菜鸟哦 于 2012-8-6 23:19 编辑

今天最后一次学习,用递归实现汉诺塔移动步骤,很简单,原理如下:
1.判断N=1,如果真则打印该移动,然后返回
2.把A上N-1个从A移动到C
3.把N移动到B,然后打印该移动
4.把C上N-1从C移动到B,返回
function  HNT(n,src,dst,hlp)
    n是数目
    src是源头柱子
    dst是目的柱子
    hlp是辅助柱子
end
用MATLAB实现,小菜技术,大牛路过,睡觉喽。
function HNT(n,src,dst,hlp)
if n==1;%%最后一次则打印后结束
disp(['put ' num2str(1) ' from ' src ' to ' dst]);
return;
end
HNT(n-1,src,hlp,dst);
disp(['put ' num2str(n) ' from ' src ' to ' dst]);
HNT(n-1,hlp,dst,src);
end
运行效果如下:
HNT(4,'A','B','C');
put 1 from A to C
put 2 from A to B
put 1 from C to B
put 3 from A to C
put 1 from B to A
put 2 from B to C
put 1 from A to C
put 4 from A to B
put 1 from C to B
put 2 from C to A
put 1 from B to A
put 3 from C to B
put 1 from A to C
put 2 from A to B
put 1 from C to B

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-9-21 17:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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