zoukankan      html  css  js  c++  java
  • python学习递归

    递归  函数调用自身,且有终止条件

      python默认递归层数为100

    可以修改层数  

      import sys

      sys.setrecursionlimit(1000)

    递归求阶乘

    ------------1迭代

      def factorial(n):

        result = n

        for i in range(1, n)

          result *= i

        return result

      number = int(input('请输入一个整数'))

      result = factorial(number)

      print('%d 的阶层是%d' % (number, result))

    -------------2递归

    def factorial(n):
      if n == 1:

        return 1

      else:

        return n * factorial(n-1)

    number = int(input('请输入一个整数'))

    result = factorial(number)

    print('%d 的阶层是%d' % (number, result))

    递归有危险性,因为有栈操作,消耗内存,所以一定要传出去,归回值

    斐波那契数列

    F(n)=F(n-1)+F(n-2)  F(1)=1  F(2)=1

    ----------1迭代

    def factorial(n):
      a = 1
      b = 1
      if n>=1:
        print('1 --> 1 ')
      if n>=2:
        print('2 --> 1 ')
      if n>=3:
        for i in range(1, n-1):
          c = a + b
          print('%d --> %d '%(i+2, c))
          a = b
          b = c
          return c
      else:
        return 1
    number = int(input('输入一个数:'))
    result = factorial(number)
    print('%d 的斐波那契数是 %d'%(number, result))

    --------------2递归

    def fab(n):
      if n <1:
        print('输入有误')
        return -1

      if n == 1 or n == 2:
        return 1
      else:
        return fab(n-1) + fab(n-2)
    number = int(input('输入一个数:'))
    result = fab(number)
    if result != -1:
      print('%d 的斐波那契数是 %d'%(number, result))

    递归很好写,但很费内存,比如35以上就需要一段时间才能计算出来

    汉诺塔游戏算法

    def hanoi(n, x, y, z):
      if n ==1:
        print(x, '-->', z)
      else:
        hanoi(n-1, x, z, y)# 将前n-1个盘子从x移动到y上
        print(x, '-->', z)# 将最底下盘子从x移动到z上
        hanoi(n-1, y, x, z)# 将y上的n-1个盘子移动到z上

    n = int(input('输入汉诺塔层数:'))
    hanoi(n, 'X', 'Y', 'Z')

  • 相关阅读:
    Webix快速跨浏览器的JavaScript UI组件
    [转]UltraISO制作U盘启动盘安装Win7/9/10系统攻略
    JavaScript中setTimeout()和setInterval()的区别
    AngularJS中文介绍
    Android Studio参考在线文章
    Android原型界面设计工具
    B-JUI(Best jQuery UI) 前端框架
    Linux Ubuntu download
    Jquery之家5个顶级Material Design框架
    bootstrap绿色大气后台模板下载[转]
  • 原文地址:https://www.cnblogs.com/jdzhang1995/p/10246554.html
Copyright © 2011-2022 走看看