• 011 递归


    一:简单使用

    1.需求

      写一个简单的阶乘。

    2.程序

      这个程序主要的功能是,通过例子理解阶乘

    1 def factorial(n):
    2     if n==1:
    3         return 1
    4     else:
    5         return n*factorial(n-1)
    6 
    7 fact=factorial(5)
    8 print(fact)

    3.效果

      

    二:菲波那切数列

    1.说明

      1、1、2、3、5、8、13、21

      在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)

    2.程序

    1 ##1、1、2、3、5、8、13、21
    2 def fibonacci(n):
    3     if n==1 or n==2:
    4         return 1
    5     else:
    6         return fibonacci(n-2)+fibonacci(n-1)
    7 
    8 fib=fibonacci(8)
    9 print(fib)

    3.效果、

      

    三:汉诺塔

    1.抽象后的做法

      

    2.思路

      这里以函数的形参为出发点。

      将三个柱子(初始柱,过渡柱,目标柱)分别标记为A,B,C

      1.将初始柱上除最下面的圆盘以外的圆盘全部搬到过渡柱上;

      2.将初始柱上最下面的圆盘搬到目标柱上;

      3.将过渡柱上的圆盘全部搬到目标柱上。

    3.程序

     1 ##
     2 def hanoiTower(n,a,b,c):
     3     if n==1:
     4         print(a,'-->' ,c)
     5         return
     6     else:
     7         hanoiTower(n-1,a,c,b)
     8         print(a,'-->' ,c)
     9         hanoiTower(n-1,b,a,c)
    10 
    11 hanoiTower(3,'X','Y','Z')

    4.效果

      

  • 相关阅读:
    day06
    day05
    day04
    day03
    day02
    day01
    斯坦福大学Machine Learning中文笔记目录
    张志华 机器学习 两门课程正确顺序及视频连接
    ROS:No module named 'em' 解决方法
    获取windows文件夹目录
  • 原文地址:https://www.cnblogs.com/juncaoit/p/9535057.html
Copyright © 2020-2023  润新知