您的位置:首页 > 大数据 > 人工智能

Lintcode - Naive Fibonacci

2015-12-20 12:55 573 查看
题目:

查找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;

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  递归