题目:
泰波那契序列 Tn 定义如下: T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2 给你整数 n,请返回第 n 个泰波那契数 Tn 的值。
思想:
非递归:定义a、b、c三个变量,分别赋值为初始的0、1、1,然后把c赋值为a、b、c之和,b取原来的c值,a取原来的b值,循环到n为止。
递归:Tn = Tn-1 + Tn-2 + Tn-3
代码:
非递归:
class Solution {
public int tribonacci(int n) {
int a = 0, b = 1, c = 1;
while(n-- > 0) {
c = a + b + c;
b = c - a - b;
a = c - a - b;
}
return a;
}
}
递归:
public int tribonacci(int n) {
if(n == 0)
return 0;
if(n == 1 || n == 2)
return 1;
retrun tribonacci(n-1)+tribonacci(n-2)+tribonacci(n-3);
}