当前位置: 首页 > 图灵资讯 > 行业资讯> 在python中如何求阶乘和斐波那契数列?

在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)

以上是求阶乘和斐波那契数列的方法。小编认为求阶时的循环非常简单易懂,递归更加抽象。对于求斐波那契数列,但并非递归适用于所有程序。当计算值较大时,迭代将更快地使用。您可以根据自己的需要选择合适的解决方案~

相关文章

在python中如何求阶乘和斐波那契数列?

在python中如何求阶乘和斐波那契数列?

2025-11-26
python中如何生成allure报告?

python中如何生成allure报告?

2025-11-26
python中seed随机函数如何生成随机数?

python中seed随机函数如何生成随机数?

2025-11-26
python中如何将华氏温度转换为摄氏温度?

python中如何将华氏温度转换为摄氏温度?

2025-11-26
python中如何将九九乘法表输出到txt文件中?

python中如何将九九乘法表输出到txt文件中?

2025-11-25
python中堆排序算法实现

python中堆排序算法实现

2025-11-25