第N个泰波拉契序列(Java)

题目:

泰波那契序列 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);
}
     
发布了36 篇原创文章 · 获赞 2 · 访问量 966

猜你喜欢

转载自blog.csdn.net/y18771025420/article/details/103227509