实现的效果如下:
参考www.cnblogs.com/yuanchenqi/articles/5828233.html
f(5)=5*4*3*2*1=120 f(7)=7*6*5*4*3*2*1=5040
开始:
def fat(n):
ret=1
for i in range(1,n+1):
ret=ret*i
return ret
print(fat(7))
但是这样写有点复杂,所以可用递归来实现:
思路:n的阶乘=n*n-1的阶乘
递归函数特点:调用自己,并有结束条件
def fact(n):
if n==1:
return 1
return n*fact(n-1)
print(fact(5))
案例2:实现菲波那嵌数列
0 1 1 2 3 5 8 13 21 34 55 (后一个数字是前两数字的和)
怎样用函数实现如下:
f(3)=1 取出第三元素
f(8)=13 取出第8个元素
实现思路:fibo(8)=fibo(7)+fibo(6)
def fibo(n):
if n<=1: 结束条件
return n
return fibo(n-1)+fibo(n-2) 调用自己
print(fibo(8))
分类:
python
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 当职场成战场:降职、阴谋与一场硬碰硬的抗争
· ShadowSql之.net sql拼写神器
· 无需WebView,Vue也能开发跨平台桌面应用
· 使用MCP C# SDK开发MCP Server + Client