LeetCode509. 斐波那契数(数学,递归,迭代)

https://leetcode-cn.com/problems/fibonacci-number/

斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
F(0) = 0, F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
给定 N,计算 F(N)。

示例 1:
输入:2
输出:1
解释:F(2) = F(1) + F(0) = 1 + 0 = 1.
示例 2:
输入:3
输出:2
解释:F(3) = F(2) + F(1) = 1 + 1 = 2.
示例 3:
输入:4
输出:3
解释:F(4) = F(3) + F(2) = 2 + 1 = 3.

提示:
0 ≤ N ≤ 30

/*
思路:
    用公式即可。。。考虑迭代或者递归(慢一点)
*/

int fib(int N){
    /* 递归法
    if(N <= 1) return N;
    return fib(N - 1) + fib(N-2);
    */
    // 迭代法
    if(N <= 1) return N;
    int fri = 0;
    int sec = 1;
    int i = 1;
    int sum = 0;
    for(; i <= N - 1; i++){
        sum = fri + sec;
        fri = sec;
        sec = sum;
    }
    
    return sum;  
}
发布了187 篇原创文章 · 获赞 17 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 黑客帝国 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览