美文网首页
python 的斐波那契数列 递归逻辑

python 的斐波那契数列 递归逻辑

作者: 风铃_2a53 | 来源:发表于2018-09-06 15:25 被阅读0次

    斐波那契数列 :0,1,1,2,3,5,8,13,21,34,55,89.........

    f(0)=0   

    f(1)=1   

    f(2)=1        

    f(3)=2     =f(2)+f(1)

    f(4)=3      =f(3)+f(2)=f(2)+f(1)+(2)

    f(5)=5      =f(4)+f(3)=f(3)+f(2)+f(2)+(1)=f(2)+f(1)+f(2)+f(2)+(1)

    f(6)=8     =f(5)+f(4)=f(4)+f(3)+f(3)+f(2)

                      =f(3)+f(2)+f(2)+f(1)+f(2)+f(1)+f(2)

                      =f(2)+f(1)+f(2)+f(2)+f(1)+f(2)+f(1)+f(2)

    f(7)=13

    f(8)=21

    f(9)=34

    f(10)=55

    fib(5)==f(4)+f(3)=f(3)+f(2)+f(2)+(1)=f(2)+f(1)+f(2)+f(2)+(1)

    第一步  fib(5)拆解

    》》》return  fib(4)+fib(3)

    》》》return  (fib(3)+fib(2))   +  fib(3)

     》》》return [   (fib(2)+fib(1))   +fib(2)]    +    (fib(2)+fib(1))  

    》》》执行结束跳出  

    精髓在于拆解fib(n)拆解成若干个   可以跳入的if判断中return 1 ,这个程序就执行完了

    执行的   每个fib   都跳入到return 1 ,执行结束,程序结束 

    每一个栈帧就代表了被调用中的一个函数,这些函数的栈帧是已先进后出的方式排列起来的,,就形成一个栈


    相关文章

      网友评论

          本文标题:python 的斐波那契数列 递归逻辑

          本文链接:https://www.haomeiwen.com/subject/ysdxgftx.html