首页 > 其他 > 详细

递归__汉诺塔

时间:2014-05-24 02:57:32      阅读:411      评论:0      收藏:0      [点我收藏+]
要将n个盘子从a 通过b 移动到c
那么 就要先将 n-1个盘子从a通过c 移动到b
再将a最底下的盘子移动到 c
之后再将 n-1个盘子从b通过a移动到c
由此可得到 递归公式

hanoi(int n,char from,char denpend_on,char to):
{
//n:盘子数from:a,denpend_on:b,to:c
//此语句意义为 将n个盘子从from 通过 denpend_on移动到to

hanoi(n-1,from,to,denpend_on);
move(n,from,to);
hanoi(n-1,denpend_on,from,to);
//当n=1时递归结束,将1个盘子从from 通过denpend_on移动到to
}



变种http://www.cnblogs.com/nanke/archive/2011/09/08/2171165.html
变种http://blog.csdn.net/xujinsmile/article/details/8091738

递归__汉诺塔,布布扣,bubuko.com

递归__汉诺塔

原文:http://www.cnblogs.com/wwjyt/p/3736827.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!