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

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

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语言
【数据结构与算法 经典例题】使用栈实现队列(图文详解)
【数据结构与算法 经典例题】使用栈实现队列(图文详解)
|
1月前
|
机器学习/深度学习 算法 安全
DSA理解理解蓝桥杯例题signature
DSA理解理解蓝桥杯例题signature
|
2天前
|
算法 C语言
【数据结构与算法 经典例题】使用队列实现栈(图文详解)
【数据结构与算法 经典例题】使用队列实现栈(图文详解)
|
22天前
|
存储 算法
算法BFS经典例题(迷宫,多源BFS,BFS解决拓扑排序,FloodFill算法)
算法BFS经典例题(迷宫,多源BFS,BFS解决拓扑排序,FloodFill算法)
|
2天前
|
算法 C语言 计算机视觉
【数据结构与算法 经典例题】括号匹配问题
【数据结构与算法 经典例题】括号匹配问题
|
2天前
|
算法
【数据结构与算法 经典例题】随机链表的复制(图文详解)
【数据结构与算法 经典例题】随机链表的复制(图文详解)
|
2天前
|
算法 C语言
【数据结构与算法 经典例题】链表的回文结构(图文详解)
【数据结构与算法 经典例题】链表的回文结构(图文详解)
|
2天前
|
算法
【数据结构与算法 经典例题】反转链表(图文详解)
【数据结构与算法 经典例题】反转链表(图文详解)
|
2天前
|
算法 C语言
【数据结构与算法 经典例题】返回单链表的倒数第 k 个节点
【数据结构与算法 经典例题】返回单链表的倒数第 k 个节点
|
2天前
|
算法 C语言
【数据结构与算法 经典例题】相交链表求交点
【数据结构与算法 经典例题】相交链表求交点