用递归函数求n的阶乘及斐波那契数列中的第n个数的值

题目要求:使用递归函数求n的阶乘及斐波那契数列中第n项的值。

1.求n的阶乘:

一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。

计算公式为n!=1×2×3×...×n;递推公式可写作n!=n×(n-1)!

于是有:

def fact(n):
if n==1:
return 1
return n*fact(n-1)
n=int(input("请输入一个正整数:"))
print(fact(n))

 

2.求斐波那契数列中第n项的值:

形如1、1、2、3、5、8、13、21、34……从第3项开始,每一项都等于前两项之和,该数列称为斐波那契数列(Fibonacci sequence)。

递推公式为F(n)=F(n-1)+F(n-2),n≥3,F(1)=1,F(2)=1。

由此,有:

def fib(n):
if n<3:
return 1
return fib(n-1)+ fib(n -2)
n=int(input("请输入一个正整数:"))
print(fib(n))


 
上一篇:Python-生成器


下一篇:python实现斐波那契数列