Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

अंकों के एक खंड को C++ में दिए गए वैकल्पिक अंकों से बदलकर दी गई संख्या को अधिकतम करें

कार्य को देखते हुए किसी दी गई संख्या को अंकों की 'एन' संख्या के साथ अधिकतम करना है, इसके अंक को किसी अन्य सरणी का उपयोग करके बदलना है जिसमें सभी एकल अंकों की संख्या 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

  1. C++ में दिए गए अंकों से बनने वाली सबसे बड़ी संख्या ज्ञात कीजिए

    मान लीजिए कि हमारे पास अंकों की एक सरणी है। हमें वह अधिकतम संख्या ज्ञात करनी है जो सरणी के सभी अंकों का उपयोग करके प्राप्त की जा सकती है। तो अगर सरणी [3, 3, 9, 6, 2, 5] की तरह है, तो अधिकतम संख्या 965332 हो सकती है। समस्या से, हम देख सकते हैं कि हम अंकों को गैर-बढ़ते क्रम में आसानी से सॉर्ट कर सकते

  1. जाँच करें कि क्या दी गई संख्या C++ में अपने अंकों के भाज्य के योग को विभाजित करती है

    मान लीजिए, हमारे पास एक पूर्णांक है, हमें यह पता लगाना है कि क्या संख्या अपने अंकों के भाज्य के योग को विभाजित करती है। मान लीजिए एक संख्या 19 है, अंकों के भाज्य का योग है (1! + 9!) =362881, यह 19 से विभाज्य है। इसे हल करने के लिए, हम संख्या लेंगे, फिर प्रत्येक अंक के फैक्टोरियल की गणना करेंगे और य

  1. सी ++ प्रोग्राम किसी दिए गए नंबर के अंकों का योग करने के लिए

    C++ भाषा में अंकों के योग की गणना करने के लिए यहां एक उदाहरण दिया गया है, उदाहरण #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "Enter the number : ";    cin >> x;    while (x != 0) {