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