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

Newman-Shanks-Williams hàng đầu trong C ++

Dãy số nguyên tố newman-shanks-williams như sau

1, 1, 3, 7, 17, 41 ...

Nếu chúng ta tổng quát hóa các mục trình tự, chúng ta nhận được

a0=1
a1=1
an=2*a(n-1)+a(n-2)

Thuật toán

  • Khởi tạo số n.
  • Khởi tạo các số đầu tiên của dãy 1 và 1.
  • Viết một vòng lặp lặp lại cho đến n.
    • Tính số tiếp theo bằng các số trước đó.
    • Cập nhật hai số trước đó.
  • Trả lại số cuối cùng.

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 = 3; i <= n; ++i) {
      int c = 2 * b + a;
      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.

17