# 题目描述
# 思路与题解
和昨天的斐波那契数思路一样,用滚动数组的思想,关键点在于设置 p、q、t、r 的初值,我们知道,r = p + q + t,第一个要计算的值是 Fn (3),T_3 = 0 + 1 + 1,这是滚动之后的,所以 p、q、t、r 的初值应该是 0、0、1、1,这样滚动过后才能变成 0、1、1,就能算出 Fn (3) = r = 0 + 1 + 1。Easy~
class Solution { | |
public: | |
int tribonacci(int n) { | |
if (n < 2) return n; | |
if (n == 2) return 1; | |
int p = 0, q = 0, t = 1, r = 1; | |
for (int i = 3; i <= n; ++i) { | |
p = q; | |
q = t; | |
t = r; | |
r = p + q + t; | |
} | |
return r; | |
} | |
}; |