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

সি++-এ N চেয়ে বড় এবং A,B অঙ্ক সমান সংখ্যক 가진 সংখ্যা

N, A, B দেওয়া থাকলে, N চেয়ে বড় এবং A ও B অঙ্ক সমান সংখ্যক থাকা সংখ্যা বের করতে হবে।

উদাহরণ

ইনপুট: N = 1234, A = 2, B = 3

আউটপুট: 2233

অ্যালগরিদম

  • রিকার্সিভ ফাংশন দিয়ে সব কন্বিনেশন জেনারেট করুন।
  • প্রতিটি ধাপে A বা B যোগ করুন।
  • যখন A ও B-এর কাউন্ট সমান হয় এবং সংখ্যা N চেয়ে বড় হয়, ফেরত দিন।
  • ন্যূনতম মান বের করুন।

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

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

long getNextGreaterElement(long result, int A, int aCount, int B, int bCount, int N) {
    if (result > 1e11) return 1e11;
    if (aCount == bCount && result >= N) return result;
    return min(
        getNextGreaterElement(result * 10 + A, A, aCount + 1, B, bCount, N),
        getNextGreaterElement(result * 10 + B, A, aCount, B, bCount + 1, N)
    );
}

int main() {
    int N = 1234, A = 2, B = 3;
    cout << getNextGreaterElement(0, A, 0, B, 0, N) << endl; // 2233
    return 0;
}

আউটপুট

2233
  1. C++-এ একটি সংখ্যায় M সन्नিহিত অঙ্কের সর্বোচ্চ যোগফল ও গুণফল

  2. শুধু ৩ ও ৮ ডিজিট দিয়ে সংখ্যা তৈরি করা C++-এ

  3. ৪ ও ৭ ডিজিট দিয়ে ন্যূনতম লাকি নম্বর (নির্দিষ্ট সম) C++-তে

  4. সি++ প্রোগ্রাম: দেওয়া সংখ্যার চেয়ে বড় পরবর্তী পূর্ণবর্গ নির্ণয়