汉诺塔递归算法是什么?

如题所述

hanot (n-1,b,a,c);(解释:在把B塔上的(n-1))个借助A塔移动到C塔)

为了实现 n个盘从 借助c 从a 移动到 b

思路如下:

首先考虑极限当只有一个盘的时候,盘直接从 a -> b即可。

当有2个盘的时候,把1号盘从a -> c 然后 把2号盘 a->b 再 把 2好盘从 c - > b。

当有n个盘的时候,把 n-1个 盘 借助 b 移动到 c 然后将 n号盘从 a -> b。

这时候只要将 n-1想办法从c移动到 b 借助 a 那么就可以先把 n-2个盘借助b移动到a。

递归,就是在运行的过程中调用自己。

构成递归需具备的条件:

1,子问题须与原始问题为同样的事,且更为简单;

2,不能无限制地调用本身,须有个出口,化简为非递归状况处理。

在数学和计算机科学中,递归指由一种(或多种)简单的基本情况定义的一类对象或方法,并规定其他所有情况都能被还原为其基本情况。

以上内容参考:百度百科-递归公式

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜