JZ7 斐波那契数列

斐波那契数列

http://www.nowcoder.com/questionTerminal/c6c7742f5ba7442aada113136ddea0c3

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

这简直是太经典的算法题了,我都说倦了。

解法一:简单递归

解法二:递归+数组储存递归值

解法三:迭代+数组储存 美其名曰 动态规划

解法四:两个中间值储存

实际上我们并不需要一整个数组来储存,因为每一次计算我们只需要用到上次和上上次的值。
注意这里 a b 值的更新,并没有用到其他中间变量!

public class Solution {
    public int Fibonacci(int n) {
        if(n<2) return n;
        int a=0, b=1;
        while(n-->1){
            b=b+a;
            a=b-a;
        }
        return b;
    }
}

解法五:斐波那契数列公式法。

直接计算公式即可。
公式和原理见 https://baike.baidu.com/item/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97#2_2
过程略。

全部评论

相关推荐

点赞 评论 收藏
分享
08-07 11:47
门头沟学院 Java
快手你的进度好快啊,可是我感觉我还没做好准备8.4投递8.7hr初筛-用人部门筛选
瞒着老板找实习:2号投敌 4号约面 今天一面已挂 哈哈
投递快手等公司10个岗位
点赞 评论 收藏
分享
06-25 16:25
梧州学院 Java
愿汐_:项目介绍那么长,然而你做了啥就一句话?
点赞 评论 收藏
分享
08-06 13:46
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务