Python的递归函数原理和实例

Python的递归函数原理和实例递归函数 函数体内调用了该函数本身 分为传递和回归两个过程 组成部分 递归调用和终止条件 优点 思路和代码简单 缺点 占用内存多 效率低下 实例 使用递归来计算 6 的阶乘思路 代码实现 deffunc n ifn 1 return1else returnn func n 1 print func 6 解释 实际上调用过程是 6func 5func 4func 3func 2 func 1 这个过程是传递

递归函数:函数体内调用了该函数本身,分为传递和回归两个过程。

组成部分:递归调用和终止条件。

实例:使用递归来计算6的阶乘

def func(n): if n == 1: return 1 else: return n*func(n-1) print(func(6)) 

解释:实际上调用过程是6func(5func(4func(3func(2*func(1)))),这个过程是传递;当n=1时,此时func(1)=1,所以不再调用函数本身(达到终止条件了),然后开始回归,将func(1) = 1代回得到fun(2) = 2,以此类推,最终得到的就是func(6) = 720。

实例:斐波那契数列

def fib(n): if n == 1 or n == 2: return 1 else: return fib(n-1)+fib(n-2) print(fib(6)) # 输出第6位的数字 for i in range(1, 7): # 输出前6位的数字 print(fib(i)) 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233294.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DenseNet简介

    DenseNet简介论文传送门:https://arxiv.org/pdf/1608.06993.pdfCNN模型的发展十分火热,自LeNet提出以来,涌现了一批优秀的CNN模型。LeNet是CNN的开山之作,标志着CNN真正的提出。2012年AlexNet夺得ILSVRC2012的冠军,深度学习大火。之后又涌现了VGG、GoogleNet、ResNet等,其中ResNet可谓是一个里程碑式的CNN模型。本文介…

    2022年9月29日
    4
  • Java 反射 -超详细讲解(附源码)「建议收藏」

    Java 反射 -超详细讲解(附源码)「建议收藏」  之前也有学习过反射,可是很快就忘了,也不知道有什么用,怎么用,故特此写下此文,以加深对java反射的理解1:反射概述  JAVA反射机制是在运行状态中1,对于任意一个类,都

    2022年6月2日
    33
  • windows11修改用户名_win10家庭中文版怎么更改用户名

    windows11修改用户名_win10家庭中文版怎么更改用户名按:新买的电脑一般预装Windows11系统(家庭与学生版),新电脑初次开机使用微软邮箱账号登录,则系统将用户名自动设置成邮箱前几位。我的用户名便是一串数字【231xx】(qq邮箱前5位),看着很不舒服,查了很多方法并最终修改成功!!记录一下修改过程,希望能帮到同样想改用户名的人。首先,强调一点,修改失败可能导致很严重的问题,电脑如有重要资料,务必请提前备份!!!一什么情况需要修改用户名最主要的情况就是初次使用设置了中文用户名。很多软件不支持路径包含中文字……………..

    2022年10月14日
    1
  • mysql实现类似rownumber()的效果

    mysql实现类似rownumber()的效果–Createtesttablecreatetabletmp_test(empidint,deptidint,salarydecimal(10,2));–Inserttestdatainsertintotmp_testvalues(1,10,5500.00),(2,10,4500.00),(3,20,1900.00),(4,20,

    2022年5月21日
    50
  • MyBatis中SqlSessionFactory和SqlSession简解

    MyBatis中SqlSessionFactory和SqlSession简解1.SqlSessionFactoryBuilder这个类可以被初始、使用和丢弃,如果你已经创建好了一个SqlSessionFactory后就不用再保留它。因此,SqlSessionFactoryBuilder的最好作用域是方法体内比如说定义一个方法变量。你可以重复使用SqlSessionFactoryBuilder生成多个SqlSessionFactory实例,但是最好不要强

    2022年6月9日
    41
  • JetBrains又出神器啦,Fleet,体验飞一般的感觉「建议收藏」

    JetBrains又出神器啦,Fleet,体验飞一般的感觉「建议收藏」文章目录简介从eclipse到FleetFleet的特性JetBrainsSpace总结简介java开发的同学可能对于JetBrains这家公司并不陌生,因为JetBrains号称拥有世界上最好的JAVA开发工具IDEA。确实IDEA非常好用,它满足了一个java开发者所有的梦想。当然JetBrains还提供了其他语言的开发神器,PyCharm,PhpStrom,WebStorm等等。只要跟开发工作有关的,都能在JetBrains的全家桶中找到。这么好用的神器自然是价格不菲,但是JetBrains

    2022年5月1日
    389

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号