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

সিরিজ 1, 2, 2, 3, 3, 3, 4…-এ n-তম টার্ম খুঁজে বের করা C++-এ

এই সমস্যায়, আমাদের একটি পূর্ণসংখ্যা N দেওয়া আছে। কাজ হল সিরিজ 1, 2, 2, 3, 3, 3, 4…-এ n-তম টার্ম বের করা।

উদাহরণ

ইনপুট

N = 6

আউটপুট

3

ব্যাখ্যা

Nতম টার্ম পর্যন্ত সিরিজ: 1, 2, 2, 3, 3, 3, ...

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

এই সমস্যা সমাধানের একটি সহজ পদ্ধতি হল নেস্টেড লুপ ব্যবহার করা। আউটার লুপ 1 থেকে n পর্যন্ত। ইনার লুপ 1 থেকে i (আউটারের ইটারেটর) পর্যন্ত। ইনার লুপের প্রতিটি ইটারেশনে সিরিজের এলিমেন্ট কাউন্ট করুন এবং i-এর ভ্যালু রিটার্ন করুন যখন কাউন্ট n-এর সমান হয়।

একটি আরও দক্ষ পদ্ধতি হল প্যাটার্ন পজিশন ব্যবহার করা। সিরিজে এলিমেন্টগুলো এবং তাদের পজিশন:

এলিমেন্ট ১: পজিশন ১
এলিমেন্ট ২: পজিশন ২, ৩
এলিমেন্ট ৩: পজিশন ৪, ৫, ৬
এলিমেন্ট ৪: পজিশন ৭, ৮, ৯, ১০

এই মানগুলো দিয়ে সিরিজের শেষ পজিশন বানানো যায়: 1, 3, 6, 10, 15, 21, 28, …

x উপস্থিত থাকে টার্মে: 1 + 2 + 3 + … + (x-2) + (x-1)...

এটি জেনারালাইজ করা যায়: n = x(x-1)/2

2n = x² - x => x² - x - 2n = 0

দ্বিঘাত সমীকরণের সমাধান সূত্র ব্যবহার করে:

x = ½ × (1 + √(1 + 8n))

প্রোগ্রাম উদাহরণ (দক্ষ পদ্ধতি)

#include <bits/stdc++.h>
using namespace std;

int findNthTerm(int n) {
    int x = ((1 + (double)sqrt(1 + 8 * n)) / 2);
    return x;
}

int main() {
    int n = 12;
    cout << "The series is 1, 2, 2, 3, 3, 3, 4, 4, ...\n";
    cout << n << "th term of the series is " << findNthTerm(n);
    return 0;
}

আউটপুট

The series is 1, 2, 2, 3, 3, 3, 4, 4, ...
12th term of the series is 5
  1. C++-এ সিরিজ 0, 0, 2, 1, 4, 2, 6, 3, 8...-এর N-তম পদ বের করার প্রোগ্রাম

  2. C++-এ সিরিজ a, b, b, c, c, c...-এর N-তম পদ বের করার প্রোগ্রাম

  3. C++-এ সিরিজ 1, 2, 11, 12, 21...-এর N-তম পদ বের করার প্রোগ্রাম

  4. C++-এ সিরিজ 3, 5, 33, 35, 53...-এর N-তম পদ বের করার প্রোগ্রাম