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


相关推荐

  • 推荐一个好的Redis GUI 客户端工具

    推荐一个好的Redis GUI 客户端工具

    2021年11月4日
    41
  • 下载安装包并安装使用_openiv安装教程

    下载安装包并安装使用_openiv安装教程VS2022版来了,VisualStudio2022最新版安装教程(数千字图文详解),一步步教会你如何安装并运行VS2022,以及背景图设置。

    2022年10月12日
    0
  • java枚举类型enum用法(java定义枚举常量类)

    文章目录枚举类的使用如何定义枚举类方式一:jdk5.0之前,自定义枚举类方式二:jdk5.0,可以使用enum关键字定义枚举类Enum类的主要方法toString()values()valueOf(StringobjName)使用enum关键字定义的枚举类实现接口的情况情况一:实现接口,在enum类中实现抽象方法情况二:让枚举类的对象分别实现接口中的抽象方法枚举类的使用枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类当需要定义一组常量时,强烈建议使用枚举类如果枚举类中只有一个对象,则

    2022年4月16日
    36
  • goland 激活【2021免费激活】

    (goland 激活)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1M…

    2022年3月28日
    65
  • 关于Jlink调试器JTAG和SWD的接口定义

    关于Jlink调试器JTAG和SWD的接口定义原贴:https://www.cnblogs.com/kwseeker-bolgs/p/3925473.html1、TestClockInput(TCK)—–强制要求1TCK在IEEE1149.1标准里是强制要求的。TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。2、TestModeSelectionInput(…

    2022年5月25日
    64
  • linux安装anaconda及配置pytorch环境

    文章目录下载anaconda使用conda创建新环境判断是否安装成功判断pytorch是否安装成功检验是否可以使用GPU下载anaconda这里有多种方法,可以下载到windows然后通过xftp传到linux服务器上,也可以使用wget命令直接在linux上下载我这里使用的是第二种方法,下载源使用的是官网的官网,如果觉得速度太慢可以使用清华镜像源,选择自己需要的版本就行wgethttps://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_

    2022年4月14日
    167

发表回复

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

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