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

সি++-এ দুটি সংখ্যার গুণিতকের সর্টেড লিস্ট থেকে n-তম গুণিতক

তিনটি সংখ্যা x, y, n দেওয়া থাকলে, x এবং y-এর গুণিতকগুলো মিলিয়ে সর্ট করার পর n-তমটি বের করতে হবে।

উদাহরণ

ইনপুট: x = 2, y = 3, n = 7

২-এর গুণিতক: ২, ৪, ৬, ৮, ১০, ১২, ১৪

৩-এর গুণিতক: ৩, ৬, ৯, ১২, ১৫, ১৮, ২১

মিলিয়ে সর্ট: ২, ৩, ৪, ৬, ৮, ৯, ১০, ১২, ১৪, ১৫, ১৮, ২১

আউটপুট: 10 (৭তম)

অ্যালগরিদম

  • ভেক্টরে x এবং y-এর প্রথম n গুণিতক রাখুন।
  • সর্ট করুন এবং ডুপ্লিকেট বাদ দিন।
  • n-1 ইনডেক্সের উপাদান ফেরত দিন।

সি++ ইমপ্লিমেন্টেশন

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

int findNthMultiple(int x, int y, int n) {
    vector 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++) {
        int val = y * i;
        if (!binary_search(multiples.begin(), multiples.end(), val)) {
            multiples.push_back(val);
            sort(multiples.begin(), multiples.end());
        }
    }
    return multiples[n - 1];
}

int main() {
    int x = 2, y = 3, n = 7;
    cout << findNthMultiple(x, y, n) << endl; // 10
    return 0;
}

আউটপুট

10
  1. দুই সংখ্যা গুণ করার C++ প্রোগ্রাম (অপারেটর দিয়ে এবং ছাড়া)

  2. C++ প্রোগ্রাম: দুটি সংখ্যা সোয়াপ (Swap) করা

  3. C++ প্রোগ্রাম: দুটি সংখ্যা যোগ করা (Addition)

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