Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หมายเลข Motzkin ใน C++


ชุดเลข Motzkin เริ่มต้นด้วย 1, 1, 4, 9 เป็นต้น เราสามารถหาพจน์ที่ n ทั่วไปด้วยลำดับได้ ลำดับเลข Motzkin มีดังนี้

a0 =1

a1 =1

a2 =4

a3 =9

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

อัลกอริทึม

  • เริ่มต้นหมายเลข n.

  • วนซ้ำจนถึง n.

    • อัพเดทเลขสองตัวก่อนหน้า

  • ส่งคืนหมายเลขสุดท้าย

ตัวอย่าง

การนำไปใช้

ต่อไปนี้เป็นการนำอัลกอริธึมข้างต้นไปใช้ใน 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;
}

ผลลัพธ์

หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้

21