न्यूमैन-शैंक्स-विलियम्स प्राइम सीक्वेंस इस प्रकार है
1, 1, 3, 7, 17, 41...
यदि हम अनुक्रम मदों का सामान्यीकरण करते हैं, तो हमें मिलता है
a0=1 a1=1 an=2*a(n-1)+a(n-2)
एल्गोरिदम
- संख्या n प्रारंभ करें।
- अनुक्रम 1 और 1 की पहली संख्याओं को प्रारंभ करें।
- एक लूप लिखें जो 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 = 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;
} आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।
17