首页 > 系统相关 >81:递归函数_函数调用内存分析_栈帧的创建

81:递归函数_函数调用内存分析_栈帧的创建

时间:2022-11-19 14:22:06浏览次数:47  
标签:调用 递归 递归函数 python 函数调用 factorial 内存 81 栈帧

###递归函数

递归函数指的是:自己调用自己的函数,在函数体内部直接或间接的自己调用自己。递归类似于大家中学数学学习过的“数学归纳法”。 每个递归函数必须包含两个部分:
1. 终止条件
表示递归什么时候结束。一般用于返回值,不再调用自己。
2. 递归步骤
把第 n 步的值和第 n-1 步相关联。

递归函数由于会创建大量的函数对象、过量的消耗内存和运算能力。在处理大量数据时,谨慎使用。

def factorial(n):
    if n == 1:
        return 1
    return n * factorial(n - 1)


for i in range(1, 6):
    print(i, '!=', factorial(i))

输出结果:

D:\work\python\two\venv\Scripts\python.exe D:\work\python\two\mypy18.py 
1 != 1
2 != 2
3 != 6
4 != 24
5 != 120

标签:调用,递归,递归函数,python,函数调用,factorial,内存,81,栈帧
From: https://www.cnblogs.com/yuanzijian/p/16906040.html

相关文章

  • 71:变量的作用域_全局变量_局部变量_栈帧内存分析讲解
    ###变量的作用域(全局变量和局部变量)变量起作用的范围称为变量的作用域,不同作用域内同名变量之间互不影响。变量分为:全局变量、局部变量。全局变量:1.在函数和类定义之......
  • 全志t507 tp2815 采集摄像头视频 app应用demo ffmpeg5将NV21转rgb
      //摄像头驱动层输出的数据流是NV21格式,此处是使用ffmpeg5将nv21转为rgb并输出到屏幕上#include<stdio.h>#include<pthread.h>#include<unistd.h>#inc......
  • 【洛谷P3810】 【模板】三维偏序(陌上花开)
    CDQ是一中思想,用来求点对数列。定义\(solve(l,r)\)用来求\([l,r]\)区间的数对,那么先递归处理\(solve(l,mid)\),然后考虑前半段对后半段的影响,然后再递归处理后半段\(sol......
  • NOIP训练测试2(2017081502)
    唔,这是今天第二场训练测试。上一轮不够难,现在来一波更简单的。【滑稽】注意时间!测试时间:3小时题目一:​​​Cantor表​​​题目二:​​​回文数​​​题目三:​​......
  • NOIP训练测试3(2017081601)
    上一波题还是比较水的吧?【?????】也许吧!但时间还是比较紧的,所以我从2.5个小时延长至3个小时了。不管了,做题不能停,今天继续测试。水不水自己看,我什么也不说(zheshizuih......
  • CF1181C Flag 题解
    题意:问在一个\(n\timesm\)的平面里有多少旗帜,旗帜的定义是三条宽度相等的带子,相邻的带子颜色不能相同(第一和第三条的颜色可以相同)。考虑以左上角统计旗帜,预处理每个点......
  • CF #815 1720 D1
    放传送门:Spasmodic(ATLv.16)。哈哈!你被骗了……才怪!思路我们可以按照LIS的思路,得出一个朴素的DP法($O(n^2)$):\[f_i=\max_{0\leqj<i,a_j\oplusi<a_i......
  • CF817E Choosing The Commander Sol
    首先,对于\(1,2\)操作显然可以对于当前Trie上的编号开一个数组记录出现次数。考虑\(3\)操作。可以树上前缀和在\(1,2\)操作的时候把根节点到当前编号路径上全体\(......
  • pytest文档81 - 如何管理Captured logging日志
    前言pytest自动捕获级别为WARNING或以上的日志消息,并以与捕获的stdout和stderr相同的方式在每个失败测试的各自部分中显示它们。日志显示当输入pytest命令,不带任......
  • NTMFS4C810NAT3G场效应管30V NCH,DEC1515H-D0-I/Z2集成电路TQFP
    产品参数1、型号:DEC1515H-D0-I/Z2封装:TQFP128批次:新年份2、型号:NTMFS4C810NAT3GFET类型:N通道技术:MOSFET(金属氧化物)漏源电压(Vdss):30V25°C时电流-连续漏极(Id):8.2A(Ta......