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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 对c语言中static函数的理解「建议收藏」

    对c语言中static函数的理解「建议收藏」先看看前两篇博客:个人对头文件的理解、对声明和定义的理解。static函数只在定义该static函数的cpp中可见,在其他cpp中是不可见的。举个例子,我建立了一个project,该projec

    2022年7月4日
    23
  • 学习Java的9张思维导图

    学习Java的9张思维导图红包网上搜集了java的学习思维导图,分享给大家。01.Java程序设计(基础)02.Java程序设计(专题)03.客户端网页编程04.JavaWeb表示层技术05.Oracle06.Hibernate07.MyBATIS08.Spring还有一幅java基础知识思维导图:具体忘记从哪里找到的这么好的资料,谢谢原作者…

    2022年5月16日
    53
  • python – 关于pycharm选择运行环境「建议收藏」

    python – 关于pycharm选择运行环境「建议收藏」一直用pycharm写代码一直用anaconda管理python环境但是今天我居然发现我不会更改pycharm当前的运行环境到我新建的anacondaenvironment中!配置:系统:win10;GPU:NVIDIAGeForceGTX1050Ti管理平台:anaconda3IDE:Pycharm问题我的anaconda里面有三个环境,第一个是自…

    2022年8月26日
    6
  • Pytorch加载自己的数据集(使用DataLoader读取Dataset)[通俗易懂]

    Pytorch加载自己的数据集(使用DataLoader读取Dataset)[通俗易懂]1.我们经常可以看到Pytorch加载数据集会用到官方整理好的数据集。很多时候我们需要加载自己的数据集,这时候我们需要使用Dataset和DataLoaderDataset:是被封装进DataLoader里,实现该方法封装自己的数据和标签。DataLoader:被封装入DataLoaderIter里,实现该方法达到数据的划分。2.Dataset阅读源码后,我们可以指导,继承该方法必须…

    2022年5月2日
    557
  • 现代OpenGL教程 01 – 入门指南

    文章转载自:http://huangwei.pro/2015-05/modern-opengl1/以下是我学习opengl得到的启示最多的一篇文章,我强烈地建议大家去读一下这位大神的文章!译序早前学OpenGL的时候还是1.x版本,用的都是glVertex,glNormal等固定管线API。后来工作需要接触DirectX9,shader也只是可选项而已,跟固定管线一起混用着

    2022年4月6日
    45
  • 微信小程序注册认证文档[通俗易懂]

    一、小程序注册须知小程序小程序主体公司注册小程序名称客户自定义(小程序名称一经填写,修改腾讯官方收取费用300元)二、微信认证申请流程(政府/事业单位类型)第一步:登录微信公众平台->设置->微信认证->开通第二步:同意协议:签署《微信公众平台认证服务协议》第三步:验证管理员第四步:选择认证类型及填写认证资料选择认证类型及上传申请公函政府/事业单位资质信息对公银行账户信息联系人信息填写第五步:确认名称公众号名称可以选择2种

    2022年4月12日
    157

发表回复

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

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