zoukankan      html  css  js  c++  java
  • python学习之函数(四)--递归

    1.什么是递归:递归比迭代高级;

     在递归函数中调用自己,如下,会陷入死循环:

      def recursion():
      return recursion()
    小知识:python3的递归层深是100层,可以更改递归层深
    import sys
    sys.setrecursionlimit(10000)

       用非递归方式实现阶乘:

    def factorail(n):
    result = n
    for i in range(1,n):
    result *= i
    return result
    print (factorail(5))

    结果:120

     用递归方式实现阶乘:

     #用递归求阶乘
    def factorail1(n):
    if n== 0:
      return 0
    if n==1:
      return 1
    else:
      return n * factorail1(n-1)
    print (factorail1(6))

    结果:720

    2.fibonacci递归数列的实现:

    #用递归方法实现
    def fibonacci(n):
    if n == 1:
    return 1
    if n == 2:
    return 1
    else:
    return fibonacci(n-1)+fibonacci(n-2)
    print (fibonacci(20))

      结果:6765

    #---------------------

    #用非递归方法实现
    def fibonacci1(n):
    s1=1
    s2=1
    s3=1
    if n < 1:
    print ("wrong input!")
    return -1
    else:
    while (n-2) > 0:
    s3 = s1+s2
    s1 = s2
    s2 = s3
    n -=1
    return s3
    print (fibonacci1(12))

    3.汉诺塔



  • 相关阅读:
    nfs共享目录及sersync实时同步
    rsync备份
    MySQL基础操作
    源码包安装MySQL
    二进制安装MySQL
    Centos6防火墙-iptables版
    linux系统mongdb基础(1)
    linux系统ElK基础filebeat收集日志(4)
    linux系统ElK基础(3)
    linux系统ElK基础(2)
  • 原文地址:https://www.cnblogs.com/zoeya/p/9438573.html
Copyright © 2011-2022 走看看