Ai
2 Star 0 Fork 1

jackfrued/python2004

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
example19.py 1023 Bytes
一键复制 编辑 原始数据 按行查看 历史
jackfrued 提交于 2020-11-27 15:20 +08:00 . 添加functools模块的例子
"""
递归定义:N! = N * (N-1)!
递归调用:一个函数直接或间接的调用了自身
练习:一个小孩爬楼梯,一次可以爬1个台阶、2个台阶或3个台阶,问爬完10个台阶有多少种走法?
"""
from functools import lru_cache, partial
# @lru_cache()
# def climb(num):
# if num == 0:
# return 1
# elif num < 0:
# return 0
# return climb(num - 1) + climb(num - 2) + climb(num - 3)
def climb(num):
a, b, c = 1, 2, 4
for _ in range(num - 1):
a, b, c = b, c, a + b + c
return a
# for i in range(1, 11):
# print(i, climb(i))
def fac(num):
if num == 0:
return 1
return num * fac(num - 1)
# print(fac(5))
# Least Recently Used - 最近最少使用 - 缓存置换策略
@lru_cache()
def fib(num):
if num in (1, 2):
return 1
return fib(num - 1) + fib(num - 2)
# for i in range(1, 121):
# print(i, fib(i))
def add(a, b):
return a + b
add = partial(add, 100)
print(add(1))
print(add(10))
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/jackfrued/python2004.git
git@gitee.com:jackfrued/python2004.git
jackfrued
python2004
python2004
master

搜索帮助