এই সমস্যায়, আমাদের একটি পূর্ণসংখ্যার মান দেওয়া হয়েছে। আমাদের কাজ হল সিরিজের 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\left ( \sum 2^{\left ( \left ( N/2 \right)-1 \right )} \ ডান )}$ ,যেখানে মান 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