002---递归

Posted xjmlove

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了002---递归相关的知识,希望对你有一定的参考价值。

递归有两个重要的特点:

  • 调用自身
  • 必须要有结束条件

一个著名的汉诺拇问题

def hanoi(n, a, b, c):
    """
    n等于0的时候终止
    a,b,c 表示a经过b再经过c
    :param n:
    :param a:
    :param b:
    :param c:
    :return:
    """
    if n > 0:
        hanoi(n - 1, a, c, b)
        print(从 %s 移动到 %s % (a, c))
        hanoi(n - 1, b, a, c)


hanoi(3, A, B, C)

"""
从 A 移动到 C
从 A 移动到 B
从 C 移动到 B
从 A 移动到 C
从 B 移动到 A
从 B 移动到 C
从 A 移动到 C
"""

 

以上是关于002---递归的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript - 代码片段,Snippets,Gist

递归改写成循环方式的实现例子-树的遍历

如何在T-SQL中使用递归CTE获得完整的层次结构?

CSP核心代码片段记录

Python编程之算法练习_002

executePendingTransactions 的递归入口