Lintcode - Naive Fibonacci

来源:互联网 发布:通达信软件使用教程 编辑:程序博客网 时间:2024/06/05 02:07

题目:

查找Fibonacci数列中第n个数,

所谓的Fibonacci数列是指:

数列前两个数为0和1,

第i个数是第i-1和i-2两个数的和,

0,1,1,2,3,5,8,13,21,......


解答:

首先Fibonacci数列是由数学家莱昂纳多斐波那契以兔子繁殖问题为基础而提出的,从他的数列构成我们可以发现,这是一个明显的可以用递归表达式表达的数列

其通项公式实际上是存在的:

具体推导见参考1.

下面贴出解

class Solution {
    /**
     * @param n: an integer
     * @return an integer f(n)
     */
    public int fibonacci(int n) {
        // write your code here
        if(n <= 1){
            return 0;
        } else if (n == 2){
            return 1;
        }     // 针对基本情况判断
        int initial1 = 0;
        int initial2 = 1;
        int res = 0;
        for(int i = n; n > 2; n--){
            res = initial1 + initial2;
            initial1 = initial2;
            initial2 = res;
        }    //循环迭代的实现
        return res;
    }
}

0 0
原创粉丝点击