Computer >> Máy Tính >  >> Lập trình >> C ++

Số Motzkin trong C ++

Dãy số Motzkin bắt đầu bằng 1, 1, 4, 9, v.v., Chúng ta có thể lấy số hạng thứ n tổng quát với dãy số. Dãy số Motzkin như sau.

một 0 =1

một 1 =1

một 2 =4

một 3 =9

a n =((2 * n + 1) / n + 2) * M (n-1) + ((3 * n - 3) / n + 2) * M (n - 2)

Thuật toán

  • Khởi tạo số n.

  • Lặp lại cho đến n.

    • Cập nhật hai số trước

  • Trả lại số cuối cùng.

Ví dụ

Thực hiện

Sau đây là cách thực hiện thuật toán trên trong C ++

#include <bits/stdc++.h>
using namespace std;
int getNthTerm(int n) {
   if(n == 0 || n == 1) {
      return 1;
   }
   int a = 1, b = 1;
   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 << getNthTerm(n) << endl;
   return 0;
}

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

21