python 递归函数

2019-08-10  本文已影响0人  足__迹

递归函数

  1. 例1,函数func如果没有设备递归边界,就对达到python的最大深度1000从而报错
def func(n):
    if n == 1: # 递归边界
        return
    print(n)
    func(n-1)
func(10)

2,例2.累加

def func_add(n):
    #判断n是否等于1
    if n ==1:
        return 1
    else: # 
       return  func_add(n-1) + n
import sys
print(sys.getrecursionlimit())
sys.setrecursionlimit(5000)

缓存装饰器

通过缓存装饰器可以将相同调用的结果给缓存起来,方便下次使用大大减少了缓存的压力

from functools import lru_cache

@lru_cache(maxsize=128)
def function_999(n):
    if n == 1:
        return 1
    if n == 2:
        return 2
    if n == 3:
        return 4
    else:
        return function_999(n - 1) + function_999(n - 2) + function_999(n - 3)


print(function_999(100))
上一篇 下一篇

猜你喜欢

热点阅读