इस समस्या में, हमें एक पूर्णांक मान N दिया जाता है। हमारा कार्य श्रृंखला का nthterm खोजना है। -
14, 28, 20, 40, 32, 64, 56, 112….
आइए समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
N = 6
आउटपुट
64
समाधान दृष्टिकोण
श्रृंखला का वां पद ज्ञात करने के लिए हमें थीसिस का सामान्य पद ज्ञात करना होगा। जिसके लिए हमें सीरीज को करीब से देखने की जरूरत है। मैं श्रृंखला को हल करने के दो अलग-अलग तरीके देख सकता हूं।
विधि 1
श्रृंखला सम और विषम स्थितियों पर दो अलग-अलग श्रृंखलाओं का मिश्रण है।
विषम स्थिति में - 14, 20, 32, 56,….
T1 = 14 T3 = 20 = T1 + 6 T5 = 32 = T3 + 12 T7 = 56 = T5 + 24 = T1 + 6 + 12 + 24 = T1 + 6*(1 + 2 + 4) TN = T1 + 6(20 + 21 + 22 +....+ 2((N/2) - 1 ) )
सम पदों पर - 28, 40, 64, 112…
T2 = 28 T4 = 40 = T2 + 12 T6 = 64 = T4 + 24 T8 = 112 = T6 + 48 = T2 + 12 + 24 + 48 = T2 + 6*(2 + 4 + 8) TN = T2 + 6(21 + 22 +....+ 2((N/2) - 1 ) )
श्रृंखला का वां पद है
$\mathrm{T_{N}\, =\, T_{s}\, +\, 6\बाएं ( \sum 2^{\बाएं ( \बाएं (एन/2 \दाएं)-1 \दाएं)} \ दाएँ )}$, जहाँ मान s से N तक 2 से बढ़ा हुआ है।
सम मानों के लिए s =2,
विषम मानों के लिए s =1.
उदाहरण
#include <iostream> #include <math.h> using namespace std; long findNthAdd(int s, int i, int n){ int sum = 0; for(; i <= n; i+= 2){ sum += pow(2, (int)((i/2) - 1)); } return 6*sum; } long findNthTermSeries(int n){ int s, i; if(n % 2 == 0){ s = 28; i = 4; } else{ s = 14; i = 3; } return ( s + findNthAdd(s, i, n)); } int main(){ int n = 15; cout<<n<<"th term of the series is "<<findNthTermSeries(n); return 0; }
आउटपुट
15th term of the series is 776
एक और समाधान
एक और तरीका, जिसका उपयोग करके Nth शब्द पाया जा सकता है, इस तथ्य का उपयोग कर रहा है कि वर्तमान शब्द या तो पिछले पद का दोगुना है या यह सम/विषम के आधार पर पिछले पद से 8 कम है।
If N is even TN = 2*T(N-1) If N is odd TN = T(N-1) - 8
इसलिए, हमें 2 से N तक लूप करना होगा, और Ti . खोजना होगा यह जाँच कर कि यह सम या विषम है।
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम,
#include <iostream> using namespace std; bool isEven(int N){ if(N % 2 == 0) return true; return false; } int findNthTermSeries(int n){ int TermN = 14; for (int i = 2; i <= n; i++) { if (isEven(i)) TermN *= 2; else TermN -= 8; } return TermN; } int main(){ int n = 15; cout<<n<<"th term of the series is "<<findNthTermSeries(n); return 0; }
आउटपुट
15th term of the series is 776