数据结构与算法(11)—递归

  • 递归问题

将问题分解为更小的相同问题——>用非常简单直接地方式解决——>调用自身。

例子:数列求和问题

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))

未完待续。。。

猜你喜欢

转载自www.cnblogs.com/yeshengCqupt/p/12624064.html