দেওয়া হয়েছে 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