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

C++ में लंबाई N की संख्या को इस तरह बदलें कि इसमें कोई एक अंक कम से कम 'K' बार आए


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

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

उदाहरण

#include <bits/stdc++.h> 
using namespace std; 

//न्यूनतम मान और अंतिम संख्या की गणना
int get_final(int n, int k, string a) {
    int modtemp;
    //k में बदले गए नंबरों की गिनती
    int co;
    string temp;
    //न्यूनतम लागत स्टोर करना
    pair ans = make_pair(INT_MAX, "");
    
    for (int i = 0; i < 10; i++) {
        temp = a;
        //अस्थायी संशोधित संख्या स्टोर करना
        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++;
                    }
                }
            }
        }
        //पिछले के साथ न्यूनतम लागत बदलना
        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. - C++ में सरणी में उन जोड़ों की संख्या ढूंढना जिनका XOR 0 है

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

  1. - C++ का उपयोग करके सरणी में ऐसा तत्व खोजें जिससे सभी तत्व विभाज्य हों

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

  1. - C++ में दी गई संख्या n के लिए x ढूंढें जहां x + अंकों का योग = n

    समस्या विवरण एक संख्या n दी गई है, हमें एक मान x ढूंढना है जिससे x + x के अंकों का योग = n हो। उदाहरण के लिए, n = 21 के लिए, x = 15 होगा क्योंकि 15 + (1+5) = 21। हल दृष्टिकोण सरल दृष्टिकोण: 1 से n तक पुनरावृति करें, प्रत्येक संख्या के लिए जांचें कि क्या संख्या + उसके अंकों का योग = n है। यदि हां,