কম্পিউটার

সি++ প্রোগ্রাম 1 2 2 3 3 3 4 সিরিজে n-তম শব্দ খুঁজে বের করতে


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

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট

N = 6

আউটপুট

3

ব্যাখ্যা

নবম মেয়াদ পর্যন্ত সিরিজ হল 1, 2, 2, 3, 3, 3, ...

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

সমস্যা সমাধানের একটি সহজ পদ্ধতি হল একটি নেস্টেড লুপ ব্যবহার করে। লুপের বাইরেরটি 1 থেকে n পর্যন্ত। এবং ভিতরের লুপ হল 1 থেকে i (বাইরের লুপের পুনরাবৃত্তিকারী)। অভ্যন্তরীণ লুপে প্রতিটি পুনরাবৃত্তির জন্য, সিরিজের উপাদানের সংখ্যা গণনা করুন এবং গণনা n এর সমান হলে i এর মান ফেরত দিন।

সমস্যা সমাধানের জন্য আরও দক্ষ পদ্ধতি হল প্যাটার্ন পজিশন ব্যবহার করা। ক্রমটির উপাদানগুলি সিরিজে তাদের অবস্থান সহ −

Element 1: position 1
Element 2: position 2, 3
Element 3: position 4, 5, 6
Element 4: position 7, 8, 9, 10

এই মানগুলির জন্য, আমরা সিরিজের উপাদানটির শেষ অবস্থানটি ব্যবহার করে একটি সিরিজ তৈরি করতে পারি যা হল,

1, 3, 6, 10, 15, 21, 28, ….

x পদে প্রদর্শিত হয়, 1 + 2 + 3 + … + (x-2) + (x-1)...

এটিকে n =x*(x-1)/2

হিসাবে সাধারণীকরণ করা যেতে পারে

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

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

$$x=1/2*(1+\sqrt{1+8*n)}$$

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#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. সি++-এ 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. সি++ এ সিরিজ 3, 5, 33, 35, 53… এর N-তম পদ খুঁজে বের করার প্রোগ্রাম