python递归(阶乘和斐波那契数)

栈的基本思想
递归指的是调用自己的函数
每个递归函数都有两个条件:基线条件和递归条件
栈有两种操作:压栈和弹栈
所有函数调用都进入调用栈
调用栈可能很长,这将占用大量的内存

斐波那契数列:亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:1、:1、2、3、5、8、13、21、……在数学上
斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …
这个数列从第三项开始,每一项都等于前两项之和。
通向公式为:f(n)=f(n-1)+f(n-2)
code:

# 此函数展示的fabonic
def fabonic(n):
    if n<1:
        return 1
    elif n==1 or n==2:
        return 1
    else:
        return fabonic(n-1)+fabonic(n-2)

print(fabonic(8))

code result

21

阶乘:是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。
亦即n!=1×2×3×…×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
阶乘的实现
通向公式是:

f(n)=n*(n-1)*(n-2)*...*1

code

# 此函数展示的是递归阶乘的计算
def fact(x):
    if x==1:
        return 1
    else:
        return x*fact(x-1)

print(fact(5))

code result

120

猜你喜欢

转载自blog.csdn.net/lc574260570/article/details/82049132