蓝桥杯:递推算法 递归算法 例题:斐波纳契数列

简介: 蓝桥杯:递推算法 递归算法 例题:斐波纳契数列

a7bc5ecc3d2140889a9df98417d5367b.png

a01e23c29b9d4d25ab87544b70096106.png

8183aebfb4f54e73a9e9aa12ace032da.png

题目描述:


斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。


指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……


在数学上,斐波那契数列以如下被以递推的方法定义:


F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)


请求出该数列中第n个数字(n从1开始计数)是多少。

f3535f25c36043dcbc61ab08ace8b4db.png

递推:

#include <iostream>
using namespace std;
int main()
{
  int a = 0;
  int b = 1; // 1
  int c = 1; // 2
  int n, ans;
  cin >> n;
  if(n == 1) ans = 1;
  else{
    for(int i = 2; i <= n; i++){
      ans = a + b;
      a = b;
      b = ans;
    }
  }
  cout << ans << endl;
  return 0;
}

递归:

#include <iostream>
using namespace std;
int fn(int n)
{
    //递归出口1
    if(n==0)
        return 0;
    //递归出口2
    else if(n==1 )
        return 1;
    else
        return fn(n-1)+fn(n-2); //递归关系式
}
int main()
{
    int n; //第几个数
    int ans;
    cin>>n;
    ans=fn(n);
    cout<<ans<<endl;
}

参考:蓝桥杯2022 冲刺班

相关文章
|
2月前
|
算法 测试技术 C++
【动态规划算法】蓝桥杯填充问题(C/C++)
【动态规划算法】蓝桥杯填充问题(C/C++)
|
6月前
|
存储 机器学习/深度学习 算法
第十五届蓝桥杯pb组国赛E题[马与象] (15分)BFS算法 详解
第十五届蓝桥杯pb组国赛E题[马与象] (15分)BFS算法 详解
66 3
|
2月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
119 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
6月前
|
算法 C语言
【数据结构与算法 经典例题】使用栈实现队列(图文详解)
【数据结构与算法 经典例题】使用栈实现队列(图文详解)
|
2月前
|
算法
基于最小二乘递推算法的系统参数辨识matlab仿真
该程序基于最小二乘递推(RLS)算法实现系统参数辨识,对参数a1、b1、a2、b2进行估计并计算误差及收敛曲线,对比不同信噪比下的估计误差。在MATLAB 2022a环境下运行,结果显示了四组误差曲线。RLS算法适用于实时、连续数据流中的动态参数辨识,通过递推方式快速调整参数估计,保持较低计算复杂度。
|
2月前
|
算法
算法与数据结构之递推法
算法与数据结构之递推法
28 0
|
4月前
|
存储 算法
读《趣学算法》:重开算法之门,神奇的兔子数列(斐波那契数列)
本文通过《趣学算法》中的斐波那契数列问题,探讨了算法的递归实现、时间复杂度分析,并展示了如何通过迭代和优化存储空间来改进算法,最终将时间复杂度从指数级降低到线性级,并将空间复杂度从线性级降低到常数级。
96 0
读《趣学算法》:重开算法之门,神奇的兔子数列(斐波那契数列)
|
4月前
|
算法
【算法】合并两个有序链表(easy)——递归算法
【算法】合并两个有序链表(easy)——递归算法
【算法】合并两个有序链表(easy)——递归算法
|
6月前
|
算法 C语言
【数据结构与算法 经典例题】使用队列实现栈(图文详解)
【数据结构与算法 经典例题】使用队列实现栈(图文详解)