题目来源:https://leetcode-cn.com/problems/n-th-tribonacci-number/
大致题意:
求出第泰波那契数,f(n) = f(n-1) + f(n-2) + f(n-3),f(0) = 0, f(1) = f(2) = 1;
思路
滑动数组
代码:
public int tribonacci(int n) {
if (n == 1 || n == 2)
return 1;
else if (n == 0)
return 0;
// 之所以这样初始化是为了方便循环体
int x = 0;
int y = 0;
int z = 1;
int sum = 1;
for (int i = 3; i <= n; i++) {
x = y;
y = z;
z = sum;
sum = x + y +z;
}
return sum;
}
矩阵幂
由题意得(截图来自官方题解)
因而可以通过求矩阵幂的方法快速求出。