কম্পিউটার টিউটোরিয়াল

C++ দিয়ে 14, 28, 20, 40,... সিরিজের Nth টার্ম বের করা


এই সমস্যাতে, আমাদের একটি ইন্টিজার N দেওয়া আছে। আমাদের কাজ হল সিরিজের nth টার্ম বের করা -

14, 28, 20, 40, 32, 64, 56, 112...

উদাহরণ দেখি:

ইনপুট

N = 6

আউটপুট

64

সমাধানের পদ্ধতি

সিরিজের Nth টার্ম বের করতে হলে সিরিজের জেনারেল টার্ম বের করতে হবে। সিরিজটিকে বাহিরে থেকে見ると দুটি ভিন্ন পদ্ধতি দেখা যায়।

পদ্ধতি ১

সিরিজটি দুটি আলাদা সিরিজের মিশ্রণ যা বিজোড় এবং জোড় পজিশনে থাকে।

বিজোড় পজিশনে - 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 ) )

সিরিজের Nth টার্ম হল

$\mathrm{T_{N}\, =\, T_{s}\, +\, 6\left ( \sum 2^{\left ( \left ( N/2 \right )-1 \right )} \right )}$ ,যেখানে মান s থেকে N পর্যন্ত ২ বাড়ाकर।

জোড় মান হলে 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 টার্ম বের করা যায়, যেটি হল বর্তমান টার্ম হয় পূর্বের টার্মের দ্বিগুণ অথবা পূর্বের টার্ম থেকে ৮ কম, বিজোড়/জোড়ের ভিত্তিতে।

যদি N জোড় হয় TN = 2*T(N-1) যদি N বিজোড় হয় TN = T(N-1) - 8

তাহলে 2 থেকে N পর্যন্ত লুপ চালিয়ে i বিজোড় নাকি জোড় চেক করে 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

  1. ০, ৮, ৬৪, ২১৬, ৫১২... সিরিজের nth টার্ম বের করা C++-এ

  2. ০, ০, ২, ১, ৪, ২, ৬, ৩, ৮, ৪... সিরিজের nth টার্ম বের করা C++-এ

  3. C++ ব্যবহার করে পেল (Pell) সংখ্যা নির্ণয় করুন

  4. C++-এ Nth সম দৈর্ঘ্যের প্যালিনড্রোম সংখ্যা বের করা