কম্পিউটার

C++ এ একই পরিমাণ A এবং B সংখ্যার সাথে N এর থেকে পরবর্তী বড় সংখ্যা


দেওয়া হয়েছে N , A , এবং B . একই সংখ্যার A সহ N-এর চেয়ে বড় সংখ্যাটি খুঁজুন এবং B অঙ্ক আসুন একটি উদাহরণ দেখি।

N = 1234
A = 2
B = 3

প্রদত্ত সংখ্যার প্রতিটি সম্ভাবনার জন্য আমাদের পরীক্ষা করতে হবে। সংখ্যা গঠনের জন্য দুটি সংখ্যা আছে। এবং সংখ্যার প্রতিটি অঙ্কের গণনা একই হওয়া উচিত।

অ্যালগরিদম

  • A, B, এবং N শুরু করুন।

  • একটি পুনরাবৃত্ত ফাংশন লিখুন।

    • বর্তমান সংখ্যাটি N এর চেয়ে বড় কিনা তা পরীক্ষা করুন এবং সমান সংখ্যক A আছে এবং B সংখ্যা।

    • উপরের শর্ত পূরণ হলে নম্বরটি ফেরত দিন।

    • ফলাফলের সাথে A সংখ্যা যোগ করুন।
    • ফলাফলের সাথে B সংখ্যা যোগ করুন।
    • উপরের দুটি থেকে ন্যূনতম নম্বর দিয়ে ফাংশনটিকে পুনরাবৃত্তিমূলকভাবে কল করুন।

বাস্তবায়ন

C++

-এ উপরের অ্যালগরিদমের বাস্তবায়ন নিচে দেওয়া হল
#include <bits/stdc++.h>
using namespace std;
long getNextGreaterElement(long result, int A, int A_Count, int B, int B_Count, int N) {
   if (result > 1e11) {
      return 1e11;
   }
   if (A_Count == B_Count && result >= N) {
      return result;
   }
   return min(getNextGreaterElement(result * 10 + A, A, A_Count + 1, B, B_Count, N),       getNextGreaterElement(result * 10 + B, A, A_Count, B, B_Count + 1, N));
}
int main() {
   int N = 1234;
   int A = 2;
   int B = 3;
   cout << getNextGreaterElement(0, A, 0, B, 0, N) << endl;
   return 0;
}

আউটপুট

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

2233

  1. C++ এ একটি সংখ্যায় M ধারাবাহিক সংখ্যার সর্বোচ্চ যোগফল এবং গুণফল

  2. শুধুমাত্র C++ এ 3 এবং 8 সংখ্যা সহ সংখ্যায় রূপান্তর করুন

  3. সংখ্যা সহ ন্যূনতম সংখ্যা এবং শুধুমাত্র 7 এবং C++ এ যোগফল দেওয়া হয়েছে

  4. C++ এ প্রদত্ত সংখ্যার চেয়ে বড় পরবর্তী নিখুঁত বর্গ খুঁজুন