Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Số Motzkin thứ N trong C++

Dãy Motzkin: M₀=1, M₁=1, M₂=4, M₃=9, M₄=21, M₅=51...

Công thức truy hồi:

Mₙ = ((2n+1)·Mₙ₋₁ + (3n-3)·Mₙ₋₂) / (n+2)

Triển khai C++

#include <bits/stdc++.h>
using namespace std;

int getMotzkin(int n) {
    if (n == 0 || n == 1) return 1;
    int a = 1, b = 1; // M0, M1
    for (int i = 2; i <= n; i++) {
        int c = ((2*i + 1) * b + (3*i - 3) * a) / (i + 2);
        a = b;
        b = c;
    }
    return b;
}

int main() {
    int n = 5;
    cout << getMotzkin(n) << endl; // 21
    return 0;
}

Kết quả

21

Ứng dụng: Số Motzkin đếm số đường đi Motzkin, cách chia đa giác, v.v.