c++求n的几次方_求斐波那契数列的第n项的三大方法

本文介绍了三种求解斐波那契数列第n项的方法:递归法、通项公式法和矩阵快速幂。递归法时间复杂度高,不适用于大n;通项公式法在n过大时会有浮点数误差;矩阵快速幂方法时间复杂度为O(log(n)),是最优解,适合大n的情况。
摘要由CSDN通过智能技术生成

3896167cf70c391e3011db3301a285c1.png
本文章示例代码使用python语言。不同语言的朋友也可以看看算法。

我们知道斐波那契数列f(n)有以下性质:

那么,对于一个指定的数字n,我们应该怎么求f(n)呢?

法一:递归法

def f(n):
    if n==0:
        return 0
    elif n==1:
        return 1
    else:
        ans=f(n-1)+f(n-2)
        return(ans)
n=int(input())
print(f(n))

时间复杂度为O(

)

n=30时所用时间:400ms左右

当n过大时建议不使用。

法二:通项公式法

**简略版**

我们知道斐波那

【问题描述】 【问题描述】编写函数f,功能是用递归的方法斐波那契数列的第n,函数原型为 int f(int n),在主函数中输入一个正整数n,调用函数f斐波那契数列的第n,并在主函数中输出。 斐波那契数列:1,1,2,3,5,8,13,21…… 【输入形式】3 【输出形式】2 【样例输入】6 【样例输出】8 【问题描述】编写函数f,功能是用递归的方法斐波那契数列的第n,函数原型为 int f(int n),在主函数中输入一个正整数n,调用函数f斐波那契数列的第n,并在主函数中输出。 斐波那契数列:1,1,2,3,5,8,13,21…… 【输入形式】3 【输出形式】2 【样例输入】6 【样例输出】8 【问题描述】编写函数f,功能是用递归的方法斐波那契数列的第n,函数原型为 int f(int n),在主函数中输入一个正整数n,调用函数f斐波那契数列的第n,并在主函数中输出。 斐波那契数列:1,1,2,3,5,8,13,21…… 【输入形式】3 【输出形式】2 【样例输入】6 【样例输出】8 【问题描述】编写函数f,功能是用递归的方法斐波那契数列的第n,函数原型为 int f(int n),在主函数中输入一个正整数n,调用函数f斐波那契数列的第n,并在主函数中输出。 斐波那契数列:1,1,2,3,5,8,13,21…… 【输入形式】3 【输出形式】2 【样例输入】6 【样例输出】8 斐波那契数列:1,1,2,3,5,8,13,21…… 【输入形式】3 【输出形式】2 【样例输入】6 【样例输出】8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值