zoukankan      html  css  js  c++  java
  • Python3基础——递归

    递归函数

    如果一个函数在内部调用自身本身,这个函数就是递归函数。

    递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。

    使用递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。python3默

    认递归的深度是100,如果想要更改递归深度,可以导入sys模块,设置递归深度最大值。

    import sys

    sys.setrecursionlimit(1000)

    递归的使用:

     1、求阶乘

    n! = 1 x 2 x 3 x ... x n

    def fact(n):
        if n==1:
            return 1
        return n * fact(n - 1)
    >>> fact(5)
    120

    2、汉诺塔

    请编写move(n, a, b, c)函数,它接收参数n,表示3个柱子A、B、C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法,例如:

    3、斐波那契数列

    Fibonacci数列为:0、1、1、2、3、5、8、13、21......

    数列第一项为0,第二项为1,从第三项开始,每一项为相邻前两项之和。

    用递归的方法来定义:

    • F(0) = 0 
    • F(1) = 1
    • F(n) = F(n-1) + F(n-2) , n>=2

  • 相关阅读:
    windows service and process 的关系
    12C expdp issue
    12C dbca silent
    12c 补丁架构 以及opatch 功能
    12C CLONE PDB and config service_listener
    给windows共享 目录付于权限
    zendstudio 安装 手册
    WampServer 下载以及安装问题 以及配置远程连接MYSQL
    Scrapy运行流程
    PyCharm设置Python版本
  • 原文地址:https://www.cnblogs.com/huluwahaha/p/7494003.html
Copyright © 2011-2022 走看看