2016 - 2025

感恩一路有你

用递归实现斐波那契数列 用递归函数求斐波那契?

浏览量:1832 时间:2021-03-12 08:46:24 作者:admin

用递归函数求斐波那契?

#include int fibonacci(int n)

{ if( n == 1 || n == 2) // 递归结束的条件,求前两项 return 1 else return fibonacci(n-1) fibonacci(n-2) // 如果是求其它项,先要求出它前面两项,然后做和。}int main()

{ int n printf("please input n: ")

scanf("%d",&n)

printf("result: %dn",fibonacci(n))

return 0}

斐波那契数列递归算法?

答:斐波那契数列递归算法是:在一列数中,从第三项开始,每项数等于和它相邻的前面两项数的和。用递推式表示为:an 2=an 1 an(n≥1)

如何用递归的方法计算并输出斐波那契数列的第n项?

关于斐波那契数列求第n项,通常有递归求法、递推求法、公式求法、矩阵快速幂求法,递归的方法效率是最低的。那么我就来分别讲这几种方法

一. 递归方法

虽然同样是递归,但是不同的写法也是有讲究的,例如可以有如下两种写法

二. 递推求法

递推求法比较直接,通过数组,那么有fib[n] = fib[n - 1] fib[n - 2],直接递推就可以了。

三. 公式求法

直接通过如下公式求即可,但缺点是精度可能会损失。

四. 矩阵快速幂

通过构造矩阵,进行递推得到

然后通过快速幂进行分治求解,时间复杂度为O(log(n))。

用递归实现斐波那契数列 斐波那契数列的应用 斐波那契数列

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。