কম্পিউটার

C++ এ দুটি সংখ্যার গুণিতকের সাজানো তালিকায় N-তম গুণিতক


আপনাকে তিনটি নম্বর দেওয়া হয়েছে। আপনাকে প্রথম দুটি সংখ্যার গুণিতক থেকে n-ম গুণিতক খুঁজে বের করতে হবে। আরও স্পষ্টভাবে বোঝার জন্য আসুন একটি উদাহরণ দেখি।

ইনপুট

x = 2
y = 3
n = 7

আউটপুট

10

প্রথম n ****2 এর বহুগুণ হল 2 4 6 8 10 12 14

প্রথম n ****3 এর বহুগুণ হল 3 6 9 12 15 18 21

উভয় গুণিতককে একত্রিত করে বাছাই করলে আমরা পাব 2 3 4 6 8 9 10 12 14 15 18 21 এবং তালিকা থেকে 10 নম্বরটি।

অ্যালগরিদম

  • সমস্ত গুণিতক সঞ্চয় করার জন্য একটি ভেক্টর শুরু করুন।
  • x এর প্রথম n ****গুণগুলি খুঁজুন এবং সেগুলিকে উপরের ভেক্টরে যোগ করুন।
  • এখন, y এর প্রথম n গুণিতক খুঁজুন।
    • এগুলি ভেক্টরে যোগ করুন যদি এটি ইতিমধ্যে ভেক্টরে উপস্থিত না থাকে।
  • গুণগুলি সাজান।
  • ভেক্টর থেকে nম মাল্টিপল প্রিন্ট করুন।

বাস্তবায়ন

C++

-এ উপরের অ্যালগরিদমের বাস্তবায়ন নিচে দেওয়া হল
#include<bits/stdc++.h>
using namespace std;
int findNthMultiple(int x, int y, int n) {
   vector<int> multiples;
   for (int i = 1; i <= n; i++) {
      multiples.push_back(x * i);
   }
   sort(multiples.begin(), multiples.end());
   for (int i = 1, k = n; i <= n && k; i++) {
      if (!binary_search(multiples.begin(), multiples.end(), y * i)) {
         multiples.push_back(y * i);
         sort(multiples.begin(), multiples.end());
      }
   }
   return multiples[n - 1];
}
int main() {
   int x = 2, y = 3, n = 7;
   cout << findNthMultiple(x, y, n) << endl;
   return 0;
}

আউটপুট

যদি আপনি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।

10

  1. C++ দুইটি সংখ্যাকে গুণ করার জন্য প্রোগ্রাম

  2. দুই নম্বর অদলবদল করতে C++ প্রোগ্রাম

  3. দুই নম্বর যোগ করার জন্য C++ প্রোগ্রাম

  4. C# এ দুটি সাজানো অ্যারে মার্জ করুন