将问题分解为更小的相同问题——>用非常简单直接地方式解决——>调用自身。
例子:数列求和问题
1 def listsum(numList): 2 if len(numList) ==1: 3 return numList[0] 4 else: 5 return numList[0] + listsum(numList[1:]) #送进去listsum的是一个list 6 print(listsum([1,2,3,4,5,9]))
1.递归算法必须有一个基本结束条件
2.递归算法必须能改变状态向基本结束条件演进(减小问题规模)
3.递归算法必须调用自身
1.整数任意进制转换
1 def toStr(n,base): 2 ‘‘‘ 3 :param n: 要转换的十进制整数 4 :param base: 转换成的n进制 5 :return: 转换结果 6 ‘‘‘ 7 convertString = ‘0123456789ABCDEF‘ 8 if n < base: 9 return convertString[n] 10 else: 11 return toStr(n//base, base) + convertString[n%base] 12 print(toStr(76989,16))
未完待续。。。
原文:https://www.cnblogs.com/yeshengCqupt/p/12624064.html