当只与前1个或者2个状态有关系时,可以使用变量来简化。

斐波那契数列

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

请注意控制循环次数,循环次数应该去除掉初始变量的次数。

    /**
     * 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项
     * (从0开始,第0项为0,第1项是1)。
     * n<=39
     * @param n 整数n
     * @return 斐波那契数列的第n项
     */
    public int Fibonacci(int n) {
        if (n < 2) {
            return n;
        }
        int f1 = 0, f2 = 1;
        int fn = f1+f2;
        for (int i = 2; i <= n; i++) {
            fn = (f1 + f2)%1000000007;
            f1 = f2;
            f2 = fn;
        }

        return fn;
    }

防止重复计算
图片说明

全部评论

相关推荐

不愿透露姓名的神秘牛友
05-01 13:13
ecece:这么明目张胆虚报就业率啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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