📜  tribonacci 系列 c++ (1)

📅  最后修改于: 2023-12-03 14:48:02.340000             🧑  作者: Mango

Tribonacci 系列介绍

Tribonacci 系列,是 Fibonacci 数列的变体。Fibonacci 数列由 0 和 1 开始,后续的数都是前面两个数的和。而 Tribonacci 数列则是由 0, 0 和 1 开始,后续的数都是前面三个数的和。

Tribonacci 数列的前几项如下:

0, 0, 1, 1, 2, 4, 7, 13, 24, 44, 81, 149, ...

在计算 Tribonacci 数列时,可以使用递归或迭代算法。以下代码展示了两种方式:

递归算法
#include <iostream>
using namespace std;

int tribonacci(int n) {
    if (n == 0) return 0;
    if (n == 1 || n == 2) return 1;
    return tribonacci(n-3) + tribonacci(n-2) + tribonacci(n-1);
}

int main() {
    cout << tribonacci(10) << endl;  // 输出 81
    return 0;
}

递归算法会重复计算某些数值,从而降低计算效率。

迭代算法
#include <iostream>
using namespace std;

int tribonacci(int n) {
    if (n == 0) return 0;
    if (n == 1 || n == 2) return 1;

    int t0 = 0, t1 = 0, t2 = 1;
    int res = 0;

    for (int i = 3; i <= n; i++) {
        res = t0 + t1 + t2;
        t0 = t1;
        t1 = t2;
        t2 = res;
    }

    return res;
}

int main() {
    cout << tribonacci(10) << endl;  // 输出 81
    return 0;
}

迭代算法可以避免重复计算,提高计算效率。

总之,Tribonacci 系列是一个递推数列,在某些场景下可以用来解决问题。但在实际计算中,需要仔细考虑算法的效率,以保证程序的性能。