প্রদত্ত কাজটি হল একটি প্রদত্ত সংখ্যাকে 'N' সংখ্যার সংখ্যা দিয়ে বড় করা অন্য একটি অ্যারে ব্যবহার করে এটির সংখ্যা প্রতিস্থাপন করে 0 থেকে 9 পর্যন্ত সমস্ত একক-সংখ্যা সংখ্যার বিকল্প হিসাবে 10টি সংখ্যা রয়েছে,
প্রদত্ত শর্ত হল সংখ্যার একটি ধারাবাহিক সেগমেন্ট এবং শুধুমাত্র একবার প্রতিস্থাপন করা যেতে পারে।
ইনপুট
N=1234, arr[]={3 ,0 ,1 ,5 ,7 ,7 ,8 ,2 ,9 ,4}
আউটপুট
1257
ব্যাখ্যা
সংখ্যা 3 এর বিকল্প 5=arr[3]
দিয়ে প্রতিস্থাপন করা যেতে পারে4 নম্বরটিকে এর বিকল্প 7=arr[4]
দিয়ে প্রতিস্থাপন করা যেতে পারেইনপুট
N=5183, arr[]={3 ,0 ,1 ,5 ,7 ,7 ,8 ,2 ,9 ,4}
আউটপুট
7183
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
ফাংশনে Max() সংখ্যার আকার সংরক্ষণ করতে int-এর একটি ভেরিয়েবল 'N' তৈরি করে।
-
i=0 থেকে i
-
তারপর নম্বরটি এর বিকল্প দিয়ে প্রতিস্থাপন করুন।
-
আসন্ন সংখ্যার জন্য এটি করুন যতক্ষণ না একটি ছোট বিকল্প থাকা সংখ্যা খুঁজে না পাওয়া যায়
উদাহরণ
#include <bits/stdc++.h> using namespace std; string Max(string str, int arr[]){ int N = str.size(); //Iterating till the end of string for (int i = 0; i < N; i++) { //Checking if it is greater or not if (str[i] - '0' < arr[str[i] - '0']) { int j = i; //Replacing with the alternate till smaller while (j < N && (str[j] - '0' <= arr[str[j] - '0'])) { str[j] = '0' + arr[str[j] - '0']; j++; } return str; } } // Returning original str if there is no change return str; } //Main function int main(){ string str = "2075"; int arr[] = {3 ,0 ,1 ,5 ,7 ,7 ,8 ,2 ,9 ,4 }; cout <<” Maximize the given number by replacing a segment of digits with the alternate digits given is: ” <<Max(str, arr); return 0; }
আউটপুট
আমরা উপরের কোডটি চালালে আমরা নিম্নলিখিত আউটপুট পাব −
Maximize the given number by replacing a segment of digits with the alternate digits given is: 2375