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

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

मान लीजिए हमारे पास अंकों का एक ऐरे है। हमें ऐरे के सभी अंकों का उपयोग करके प्राप्त की जा सकने वाली अधिकतम संख्या खोजनी है। तो यदि ऐरे [3, 3, 9, 6, 2, 5] जैसा है, तो अधिकतम संख्या 965332 हो सकती है।

समस्या से, हम देख सकते हैं कि हम अंकों को गैर-बढ़ते क्रम में आसानी से सॉर्ट कर सकते हैं, फिर उन्हें प्रिंट कर सकते हैं। लेकिन हम इसे अधिक कुशल तरीके से हल कर सकते हैं। हम आकार 10 का एक ऐरे बना सकते हैं जो प्रत्येक अंक की फ्रीक्वेंसी स्टोर करे, फिर 9 से 0 तक तदनुसार संख्याओं को प्रिंट करें।

उदाहरण

#include <iostream>
#include <string>
using namespace std;

int maxNumFromNum(int arr[], int n) {
    int freq[10] = {0};
    for (int i = 0; i < n; i++)
        freq[arr[i]]++;
    int res = 0, mul = 1;
    for (int i = 0; i <= 9; i++) {
        while (freq[i] > 0) {
            res = res + (i * mul);
            freq[i]--;
            mul = mul * 10;
        }
    }
    return res;
}

int main() {
    int digits[] = {3, 3, 9, 6, 2, 5};
    int n = sizeof(digits) / sizeof(digits[0]);
    cout << "Maximum number: " << maxNumFromNum(digits, n);
}

आउटपुट

Maximum number: 965332

  1. - C++ का उपयोग करके एक संख्या x खोजें जिसके अंकों का योग x के बराबर दिए गए n के बराबर हो

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

  1. - C++ में दिए गए अंतर वाली जोड़ी ढूंढें

    समस्या विवरण एक सरणी A दी गई है जिसमें n विभिन्न तत्व हैं। हमें सरणी से एक जोड़ी (x, y) ढूंढनी है जिससे x और y का अंतर दिए गए अंतर d के बराबर हो। उदाहरण के लिए, यदि सरणी A = [10, 15, 26, 30, 40, 70] है और दिया गया अंतर 30 है, तो जोड़ियां (10, 40) और (30, 70) होंगी। हल दृष्टिकोण इस समस्या को हल करन

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

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