首页 > 其他分享 > fibnacci数列递归实现

fibnacci数列递归实现

时间:2022-10-09 09:47:53浏览次数:49  
标签:return 数列 递归 int fibnacci fibo Fibonacci

1.斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……这个数列从第3项开始,每一项都等于前两项之和。在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。

2.fibnacci数列的递归表达式:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)

3.#include <stdio.h>
int fibo(int n)
{
    if (n <= 2)
    {
        return 1;
    }
    else
    {
        return fibo(n - 1) + fibo(n - 2);
    }
}
int main()
{
    int n ; printf("n = ");
    scanf("%d", &n);
    int result;
    result= fibo(n);
    printf("%d", result);
    return 0;
}

在计算fibo(10)时可以秒出答案,但到了fibo(1000)时计算了五六分钟还出不了结果,那就更不必说fibo(10000)了。

之后参考https://blog.csdn.net/m0_68164889/article/details/124393721了解到该递归效率极低

可利用该代码加快速度#include <stdio.h>
int Fibonacci(int n)
{
    int a = 1;
    int b = 1;
    int c = 1;
    while (n >= 3)
    {
        c = a + b;
        a = b;
        b = c;
        n--;
    }
    return c;
}
int main()
{
    int n = 0;
    scanf("%d", &n);
    int ret = Fibonacci(n);
    printf("第%d个Fibonacci数列为%d\n",n, ret);
    return 0;
}

 

 


 

 


  

标签:return,数列,递归,int,fibnacci,fibo,Fibonacci
From: https://www.cnblogs.com/senwanxuanqi/p/16770449.html

相关文章

  • 斐波拉契数列
    斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89...这个数列从第3项开始,每一项都等于前两项之和。这个数列从第3项开始,每一项都等于前两项之和。a1=1,a2=1,an=an-1+an-2......
  • fibnacci数列递归实现
    fibnacci数列递归实现fibnacci数列斐波那契数列(Fibonaccisequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(LeonardoFibonacci)以兔子繁殖为例子而引入,故又称为“兔......
  • fibnacci数列
    fibnacci数列斐波那契数列(Fibonaccisequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(LeonardoFibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一......
  • fibnacci数列递归实现
    fibnacci数列递归实现网上查询资料说明什么是fibnacci数列?斐波那契数列(Fibonaccisequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(LeonardoFibonacci)以兔子繁殖为......
  • 03 栈与递归 | 数据结构与算法
    1.栈栈的定义:限定在表尾进行插入和删除操作的线性表空栈:不换任何元素的栈栈顶top:允许插入删除的一端栈的操作(连续设计)置空栈make_null_stack()#definemaxn......
  • fibnacci数列递归实现
    fibnacci数列递归实现什么是Fibonacci数列斐波那契数列(Fibonaccisequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(LeonardoFibonacci)以兔子繁殖为例子而引入,故又称......
  • 【Java基础】递归介绍、思想、基本使用、求阶乘及递归遍历目录
    目录​​一、递归介绍​​​​二、递归求阶乘​​​​三、递归遍历目录​​一、递归介绍递归(recursion)的定义:递归是一种解决问题的有效方法,在递归过程中,函数将自身作为子例......
  • 斐波那契数列
    1.斐波那契数列斐波那契数列是如下的数列:1,1,2,3,5,8,13...其中,该数列的前两项是1,从第三项(包括第三项)开始第n项为第(n-1)项与第(n-2)项的和。2.斐波那契数列递推......
  • 代码随想录day14 ● 理论基础 ● 递归遍历 ● 迭代遍历 ● 统一迭代
    ● 理论基础 1//二叉树的定义2structTreeNode{3intval;4TreeNode*left;5TreeNode*right;6TreeNode(intx):val(x),left(NULL),r......
  • 斐波那契数列
    fibnacci数列定义斐波那契数列(Fibonaccisequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(LeonardoFibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这......