剑指offer-----7、斐波那契数列

    xiaoxiao2025-03-17  26

    1、题目描述

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

    2、分析

            这个问题其实已经是一个老生常谈的问题了,最常见的解决办法有三种,第一种就是常见的教科书级别的递归,但是这个有一个很大的问题就是很容易爆栈。第二种是用循环,中间记录上一步计算的结果。第三种是用数学公式。递归可以不用去考虑,最需要掌握的是第二种。

    3、代码

    class Solution { public: int Fibonacci(int n) { if(n==0) return 0; if(n==1) return 1; if(n==2) return 1; long res; int mid1=1; int mid2=1; for(int i=3;i<=n;++i){ res=mid1+mid2; mid1=mid2; mid2=res; } return res; } };

    4、相关知识点

            斐波那契的相同类型题有很多,比如上台阶问题等等。

    最新回复(0)