LeetCode刷题509-简单-斐波那契数列

Posted 布小禅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode刷题509-简单-斐波那契数列相关的知识,希望对你有一定的参考价值。

☀️ 前言 ☀️

算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!

🙀 作者简介 🙀

大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的IT小白,很高兴能偶认识你,关注我,每天坚持学点东西,我们以后就是大佬啦!

📢 博客主页:❤布小禅❤
📢 作者专栏:
❤Python❤
❤Java❤

❤力扣题❤

这是我刷第 83/100 道力扣简单题

💗 一、题目描述 💗

求斐波那契数列的第n项
斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 01 开始,后面的每一项数字都是前面两项数字的和。也就是:

F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1

给你 n ,请计算 F(n)

示例1:

输入:3
输出:2
解释:F(3) = F(2) + F(1) = 1 + 1 = 2

示例2:

输入:2
输出:1
解释:F(2) = F(1) + F(0) = 1 + 0 = 1

提示:0 <= n <= 30

💁 二、题目解析 💁

思 路 1 : \\color{green}{思路1:} 1

   既然是这么出名的数列,你自己想的方法肯定没有前辈总结的好
  • 既然是有规律的数列
  • 就有通项公式
  • 想想你们高中使用数列推导式求通项公式的方法
  • 求出通项公式为:F(n) = 1/根号5*(((1+根号5)/2)**n-((1-根号5)/2)**n)(或者直接百度搜一个通项公式)

🏃 三、代码 🏃

☁️ C语言☁️

/*
  既然是这么出名的数列,你自己想的方法肯定没有前辈总结的好
  - 既然是有规律的数列
  - 就有通项公式
  - 想想你们高中使用数列推导式求通项公式的方法
  - 求出通项公式为:F(n) = 1/根号5*(((1+根号5)/2)**n-((1-根号5)/2)**n)(或者直接百度搜一个通项公式)
*/
int fib(int n) {
    double sqrt5 = sqrt(5);   // (1) 求出根号5以便于重复使用
    double fibN = pow((1 + sqrt5) / 2, n) - pow((1 - sqrt5) / 2, n);    // (2) 求后面括号的值
    double Fn =  round(fibN / sqrt5);     // (3) 除以根号5
    return Fn;      // 返回
}

🌔 结语 🌔

坚持最重要,每日一题必不可少!😸

期待你的关注和督促!😛

以上是关于LeetCode刷题509-简单-斐波那契数列的主要内容,如果未能解决你的问题,请参考以下文章

leetCode第509题——斐波那契数

LeetCode刷题offer10-1-简单-斐波那契数列

LeetCode刷题offer10-1-简单-斐波那契数列

[LeetCode] 509. 斐波那契数

Leetcode刷题100天—剑指 Offer 10- I. 斐波那契数列(数学)—day28

Leetcode刷题100天—剑指 Offer 10- I. 斐波那契数列(数学)—day28