递归

将问题分解成更小的问题,知道得到一个足够小的问题可以被很简单的解决;
通常递归涉及函数调用自身;
递归算法三定律:
1、递归算法必须具有基本情况。
首先,基本情况是算法停止递归的条件。
基本情况通常是足够小以直接求解的问题。
在listsum 算法中,基本情况是长度为 1 的列表。

2、递归算法必须改变其状态并向基本情况靠近。
通常,表示问题的数据在某种程度上变小。
在 listsum 算法中,我们的主要数据结构是一个列表,因此我们必须将我们的状态转换工作集中在列表上。
因为基本情况是长度 1 的列表,所以朝向基本情况的自然进展是缩短列表。

3、递归算法必须以递归方式调用自身。

1 # 整数转换成其他进制字符串输出
2 def tostr(number,base):
3     convertstring = '123456789ABCDE'
4     if number < base:
5         return convertstring[number]
6     else:
7         return tostr(number//base) + convertstring[number%base]
原文地址:https://www.cnblogs.com/pacino12134/p/10745027.html