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

लंबाई N की एक संख्या को इस प्रकार कनवर्ट करें कि इसमें C++ में कम से कम 'K' बार कोई एक अंक हो

इस ट्यूटोरियल में, हम कई लंबाई N को परिवर्तित करने के लिए एक प्रोग्राम पर चर्चा करेंगे, जिसमें कम से कम 'K' बार कोई एक अंक हो।

इसके लिए हमें दी गई लंबाई N की संख्या प्रदान की जाएगी। हमारा कार्य दी गई संख्या में अंकों को इस प्रकार परिवर्तित करना है कि कोई एक अंक कम से कम 'K' बार दोहराया जाए। साथ ही, आपको इस ऑपरेशन की लागत की गणना करनी होगी जो दोनों के बीच पूर्ण अंतर है और अंत में न्यूनतम लागत प्रिंट करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
//calculating the minimum value and final number
int get_final(int n, int k, string a){
   int modtemp;
   //count of numbers changed to k
   int co;
   string temp;
   //storing the minimum cost
   pair<int, string> ans = make_pair(INT_MAX, "");
   for (int i = 0; i < 10; i++) {
      temp = a;
      //storing the temporary modified number
      modtemp = 0;
      co = count(a.begin(), a.end(), i + '0');
      for (int j = 1; j < 10; j++) {
         if (i + j < 10) {
            for (int p = 0; p < n; p++) {
               if (co <= k)
                  break;
               if (i + '0' == temp[p] - j) {
                  temp[p] = i + '0';
                  modtemp += j;
                  co++;
               }
            }  
         }
         if (i - j >= 0) {
            for (int p = n - 1; p >= 0; p--) {
               if (co >= k)
                  break;
               if (i + '0' == temp[p] + j) {
                  temp[p] = i + '0';
                  modtemp += j;
                  co++;
               }
            }
         }
      }
      //replacing the minimum cost with the previous one
      ans = min(ans, make_pair(modtemp, temp));
   }
   cout << ans.first << endl << ans.second << endl;
}
int main(){
   int n = 5, k = 4;
   string a = "21122";
   get_final(n, k, a);
   return 0;
}

आउटपुट

1
21222

  1. एक सरणी में जोड़े की संख्या पाएं जैसे कि उनका एक्सओआर 0 सी ++ का उपयोग कर रहा है।

    मान लीजिए हमारे पास n तत्वों की एक सरणी है; हमें सरणी में ऐसे कई जोड़े खोजने हैं जिनका XOR 0 होगा। युग्म (x, y) जिसका XOR 0 है, तो x =y है। इसे हल करने के लिए हम सरणी को सॉर्ट कर सकते हैं, फिर यदि दो लगातार तत्व समान हैं, तो गिनती बढ़ाएं। यदि सभी तत्व समान हैं, तो अंतिम गणना नहीं की जा सकती है। उस स

  1. एक सरणी तत्व खोजें जैसे कि सभी तत्व इसके द्वारा c++ . का उपयोग करके विभाज्य हैं

    विचार करें कि हमारे पास कुछ तत्वों के साथ एक सरणी ए है। हमें A से एक अवयव इस प्रकार ज्ञात करना है कि सभी तत्वों को इससे विभाजित किया जा सके। मान लीजिए कि ए [15, 21, 69, 33, 3, 72, 81] जैसा है, तो तत्व 3 होगा, क्योंकि सभी संख्याएं 3 से विभाज्य हो सकती हैं। इस समस्या को हल करने के लिए, हम ए में सबसे

  1. ऐसी संख्या x ज्ञात कीजिए कि C++ में x और उसके अंकों का योग दिए गए n के बराबर हो

    यहां हम एक समस्या देखेंगे, जहां हम एक संख्या n लेते हैं, हमें एक और मान x ज्ञात करना होता है, जैसे कि x का x + अंकों का योग दी गई संख्या n के समान हो। मान लीजिए n का मान 21 है। यह प्रोग्राम एक संख्या x =15, 15 + अंकों का योग 15, यानी 15 + 1 + 5 =21 =n के रूप में लौटाएगा। इस समस्या को हल करने के लिए