一、题目描述
泰波那契序列 Tn 定义如下:
T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2
给你整数 n,请返回第 n 个泰波那契数 Tn 的值。
二、题解思路
利用公式Tn+3 = Tn + Tn+1 + Tn+2
。每计算一次n3就向后移动一位:
// 第一次
0 0 1 1 2 4
a b c d
// 第二次
0 0 1 1 2 4
a b c d
三、程序实例
class Solution {
public:
int tribonacci(int n) {
int n1 = 0;
int n2 = 0;
int n3 = 1;
int ret = n;
for(int i = 1; i < n; ++i)
{
ret = n1 + n2 + n3;
n1 = n2;
n2 = n3;
n3 = ret;
}
return ret;
}
};