题目

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。

考察点

  • 菲波那切数列:

f(x)={0,n=01,n=1f(n−1)+f(n−2),n>1f(x)=\left\{ \begin{aligned} &0, n=0 \\ &1, n=1 \\&f(n-1)+f(n-2),n>1 \end{aligned} \right. f(x)=⎩⎪⎨⎪⎧​​0,n=01,n=1f(n−1)+f(n−2),n>1​

  • 循环与递归

解题思路

完整代码

递归实现

class Solution {public:int Fibonacci(int n) {if(n==0)return 0;if(n==1)return 1;return Fibonacci(n-1)+Fibonacci(n-2);     }
};

显示结果如下:

出现该情况的原因不是程序有问题,而是当数据量过大时,递归方法计算的时间复杂度以n的指数方式递增。
也就是说,递归虽然简洁,但因为它是函数调用自身,这是要消耗时间和空间的,并且可能会导致调用栈溢出的问题。

循环实现及完整代码

/*07-斐波那切数列*/
#include<iostream>
using namespace std;
class Solution {public:int Fibonacci_iter(int n) //迭代实现{if (n == 0) return 0;if (n == 1) return 1;return Fibonacci_iter(n - 1) + Fibonacci_iter(n - 2);}int Fibonacci(int n)// 循环实现{if (n == 0) return 0;if (n == 1) return 1;int result = 0;int one = 0;int two = 1;for (int i = 2; i <= n; i++){result = one + two;one = two;two = result;}return result;}
};
int main()
{Solution s;cout << s.Fibonacci_iter(2) << endl;cout << s.Fibonacci(3) << endl;return 0;
}

编程时出现的问题

  • 总是把==写成 =

剑指offer(7)——C++实现菲波那切数列相关推荐

  1. 剑指Offer - 面试题10- I. 斐波那契数列

    文章目录 1. 题目 2. DP解题 3. 面试题 08.01. 三步问题 4. LeetCode 509. 斐波那契数 1. 题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 ...

  2. python剑指offer面试题_剑指offer面试题Q10 斐波那契数列 python解法

    Q10.斐波那契数列 题目描述 写一个函数,输入n,求斐波那契数列的第n项. 解题思路 思路一 递归 递归很简单但是并不能AC python实现代码 class Solution: def Fibon ...

  3. 剑指offer(7)斐波那契数列

    题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项. n<=39 题目分析 我们都知道斐波那契可以用递归,但是递归重复计算的部分太多了(虽然可以通过),但是这 ...

  4. 剑指offer面试题[9]-裴波那契数列

    题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项. n<=39 分析: 虽然在学递归函数时,会用斐波那契数列作为例子,但这并不能说明递归的解法最合适这个题目 ...

  5. 剑指offer面试题10- I. 斐波那契数列

    题目描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: 思路 详见链接 代码 class Solution:def fib(self,n:int) ...

  6. 剑指offer Leetcode 10 I .斐波那契数列

    解法1:效率低的解法 复杂度 速度十分缓慢,重复计算太多 代码 //未考虑溢出和取模 class Solution {public:int fib(int n) {if(n <= 0)retur ...

  7. 剑指offer:菲波那切数列

    一.题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项.n<=39 解题思路: 菲波那切数列:指的是这样一个数列:1.1.2.3.5.8.13.21.34.- ...

  8. [剑指offer]二叉搜索树的后序遍历数列

    [剑指offer]二叉搜索树的后序遍历数列 剑指offer-二叉搜索树的后序遍历序列 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回 true,否则返回 fals ...

  9. php菲波那切数列,php实现菲波那切数列和杨辉三角

    1.递归  显示斐波那契数列 function recursion($num){ //判断是否小于0 if($num<0){ return -1; } if($num==1){ return 0 ...

最新文章

  1. torch EOFError: Ran out of input
  2. ndarray的数据类型
  3. java 协程框架_GitHub - yaozhang0105/dactor: Dactor是基于Java的轻量级同步异步统一处理框架,基于协程思想构建...
  4. window下Java的环境变量的配置
  5. Kohana和Zencart
  6. HDU 5608 function (杜教筛)
  7. 小米MIX 4支持UWB技术:实现设备间无感定向传输和操控
  8. solidworks属性管理器_老式经典|如何提高SOLIDWORKS的运行速度
  9. JAVA中堆和栈的区别
  10. blender源代码分析----第三方库的说明
  11. js怎么获取ueditor值_js获取UEditor富文本编辑器中的图片地址
  12. 沉默内向的计算机保研er在保研面试中会吃亏吗?
  13. 空洞卷积的使用增大感受野
  14. 行人属性识别:Grouping Attribute Recognition for Pedestrian with Joint Recurrent Learning
  15. PHP修改图片颜色(生成彩色二维码)
  16. Spring源码分析系列——bean创建过程分析(三)——工厂方法创建bean
  17. vue关于接口请求数据过大导致浏览器崩溃
  18. 电磁场与仿真软件(35)
  19. 一篇 CVPR 2022顶会论文是如何炼成的,顶会一作亲述
  20. linux三剑客面试题,Linux三剑客之sed

热门文章

  1. sqlserver同步到redis_[redis 同步到数据库]一文让你明白Redis主从同步
  2. 打造FLASH按钮声效
  3. iOS开发crash信息符号表解析
  4. 画出降维后的图片_PCA降维原理
  5. 《C++Primer》第十九章
  6. 编写一个GStreamer插件
  7. 小白级微信支付的设计思路
  8. 买新机去OPPO官网还是线下实体店?一文带你了解其中区别
  9. 蓝桥 3N+1 JAVA
  10. Base64与百分号编码相关 - iOS