题目要求:使用递归函数求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))