文章目录
☀️ 前言 ☀️
算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!
🙀 作者简介 🙀
大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的IT小白,很高兴能偶认识你,关注我,每天坚持学点东西,我们以后就是大佬啦!
📢 :❤布小禅❤
📢 作者专栏:
这是我刷第 83/100 道力扣简单题
💗 一、题目描述 💗
求斐波那契数列的第n项
斐波那契数,通常用 F(n)
表示,形成的序列称为 斐波那契数列 。该数列由 0
和 1
开始,后面的每一项数字都是前面两项数字的和。也就是:
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
既然是这么出名的数列,你自己想的方法肯定没有前辈总结的好
- 既然是有规律的数列
- 就有通项公式
- 想想你们高中使用数列推导式求通项公式的方法
- 求出通项公式为: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; // 返回 }
🌔 结语 🌔
坚持最重要,每日一题必不可少!😸
期待你的关注和督促!😛