Python递归

递归三定律

  1. 递归算法必须有一个基本结束条件(最小规模问题的直接解决)
  2. 递归算法必须能改变状态向基本结束条件演进(减小问题规模)
  3. 递归算法必须调用自身(解决减小了规模的相同问题)

递归求和

def listSum(mylist):
    if len(mylist) == 2:  # 或 1
        return mylist[0] + mylist[1]
    else:
        return mylist[0] + listSum(mylist[1:]) 

l1 = [1, 2, 3, 4]
print(listSum(l1))



进制转换

ref = "0123456789ABCDEF"

def toStr(n, base):
    if n < base:  # 这就是最小规模,通过打表就能获得结果
        return ref[n] 
    else:  # 分解成余数和商,余数肯定是最下规模
        temp = n % base
        n = n // base
        return toStr(n, base) + temp  # 注意顺序


print(toStr(123, 16))
原文地址:https://www.cnblogs.com/SKEZhi/p/13353779.html