斐波拉契数列的递推递归求解算法

简介: 斐波拉契数列的递推递归求解算法

介绍:

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(3)=2,F(n)=F(n-1)+F(n-2)(n>=4,n∈N*)


递推=iterative;递归=recursive


递归指自我调用的函数;递推指重复进行的过程,这个重复的过程可以是,有自我调用的函数的重复的自我调用,也可以是其它过程。


1.裴波那契数列的递推求解算法。


#include<iostream>
using namespace std;
int Fib(int n){
    int f1=1,f2=1,i,f;
    if(n<=2)return 1;
    for(i=3;i<=n;i++){
        f=f1+f2;
        f1=f2;
    f2=f;
    }return f;
}
int main(){
  int n;
  cin>>n;
  for(int i=1;i<=n;i++){
    cout<<Fib(i)<<endl;
  }
  return 0;
}


2.裴波那契数列的递归求解算法。


#include<iostream>
using namespace std;
int Fib(int n){
  if(n<=2)return 1;
    return Fib(n-1)+Fib(n-2);
  }
int main(){
  int n;
  cin>>n;
  for(int i=1;i<=n;i++){
    cout<<Fib(i)<<endl;
  }
  return 0;
}


递推是数学上的概念,主要是指递推式或者说递推数列,递推函数,也就是说一个数列的下面一项有它的前面几项的值的一种运算(或者函数)构成,比如a[n]=a[n-1]+a[n-2];

递归是计算机中的概念,主要是指递归函数(计算机中函数同数学上函数意义也不相同,是指一段代码),就是指会调用自己的函数。显然,数学中的递推函数在计算机实现中可以通过递归来实现,但是不一定要通过递归来实现。

目录
相关文章
|
8月前
|
存储 算法 Java
算法系列之递归反转单链表
递归反转链表的基本思路是将当前节点的next指针指向前一个节点,然后递归地对下一个节点进行同样的操作。递归的核心思想是将问题分解为更小的子问题,直到达到基本情况(通常是链表末尾)。
212 5
算法系列之递归反转单链表
|
11月前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
209 2
|
12月前
|
算法 搜索推荐 Shell
数据结构与算法学习十二:希尔排序、快速排序(递归、好理解)、归并排序(递归、难理解)
这篇文章介绍了希尔排序、快速排序和归并排序三种排序算法的基本概念、实现思路、代码实现及其测试结果。
322 1
基于最小二乘递推算法的系统参数辨识matlab仿真
该程序基于最小二乘递推(RLS)算法实现系统参数辨识,对参数a1、b1、a2、b2进行估计并计算误差及收敛曲线,对比不同信噪比下的估计误差。在MATLAB 2022a环境下运行,结果显示了四组误差曲线。RLS算法适用于实时、连续数据流中的动态参数辨识,通过递推方式快速调整参数估计,保持较低计算复杂度。
|
12月前
|
算法 定位技术
数据结构与算法学习九:学习递归。递归的经典实例:打印问题、阶乘问题、递归-迷宫问题、八皇后问题
本文详细介绍了递归的概念、重要规则、形式,并展示了递归在解决打印问题、阶乘问题、迷宫问题和八皇后问题等经典实例中的应用。
244 0
|
算法
算法与数据结构之递推法
算法与数据结构之递推法
116 0
|
算法
【算法】递归、搜索与回溯——汉诺塔
【算法】递归、搜索与回溯——汉诺塔
217 1
|
算法
【算法】递归总结:循环与递归的区别?递归与深搜的关系?
【算法】递归总结:循环与递归的区别?递归与深搜的关系?
400 0
|
12天前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
110 3
|
17天前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)

热门文章

最新文章