在python中如何求阶乘和斐波那契数列?
发布时间:2025-11-26 20:51:07

小编之前介绍了三种求公约数的方法(https://www.py.cn/jishu/jichu/21725.html),其中一种是翻来覆去,也被称为欧几里得算法。在寻求公约数时,一般分析将被视为数阶,而欧几里得算法中最常用的数学理论与斐波那契数列有关。斐波那契数列是什么?它是如何实现的?如何寻求阶级乘坐?别担心,跟随小边的脚步。
一、相关概念
阶乘:正整数阶乘(factorial)它是所有小于或等于正整数的积累,0的阶乘是1。自然数n的阶乘写n!。1808年,基斯顿·卡曼介绍了这种表达方式。
斐波那契数列(Fibonacci sequence),又称黄金分割数列。因为数学家列昂纳多·斐波那契契(Leonardoda Fibonacci)以兔子繁殖为例,又称“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、...在数学上,斐波纳契数列以下是递归法定义的:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)。
二、求阶乘
循环解法
n=int(input('请输入您想要的阶乘:'))
foriinrange(1,n):
n*=i
print(n)递归解法
deffactorial(n): ifn==1: return1 else: returnn*factorial(n-1) print(factorial(5))
三、求斐波那契数列
递归解法
deffib(n): lt=[] foriinrange(n): ifi==0ori==1: lt.append(1) else: lt.append(lt[i-2]+lt[i-1]) returnlt print(fib(9))
迭代解法
deffab(n):
n1=1
n2=1
n3=1#给n3一个初始值
ifn<1:
print('输入错误!')
return-1
while(n-2)>0:#当n为3时,大于0,n3=n2+n1
n3=n2+n1
n1=n2#计算下一次迭代,将n1和n2依次向后移动,n2给现在的n1,之前的n3给n2,重复计算要求和
n2=n3
n-=1#计算一次减少一次n,直到n为2,跳出循环
returnn3
result=fab(20)
ifresult!=-1:
print('兔子总共有%d!'%result)以上是求阶乘和斐波那契数列的方法。小编认为求阶时的循环非常简单易懂,递归更加抽象。对于求斐波那契数列,但并非递归适用于所有程序。当计算值较大时,迭代将更快地使用。您可以根据自己的需要选择合适的解决方案~
下一篇 返回列表
