递归
将问题分解成更小的问题,知道得到一个足够小的问题可以被很简单的解决;
通常递归涉及函数调用自身;
递归算法三定律:
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]