斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给你 n ,请计算 F(n) 。
之前基本没有碰过动态规划的题,这个暑假开始猛攻动态规划,先从简单的斐波那契数列开始吧~
这个题的边界和状态转移方程题目都给了,挺简单的。
倒是发现了可以秒杀此题的公式,公式如下:
class Solution {
public:int fib(int n) {double sqrt5 = sqrt(5);return round((pow((1+sqrt5)/2,n) - pow((1-sqrt5)/2,n)) / sqrt5);}
};