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

C++ में दी गई संख्या से सख्ती से छोटी संख्या प्रिंट करना जिसके सभी डिजिट अलग हों


इस समस्या में, हमें एक संख्या n दी गई है। हमारा कार्य n से छोटी सबसे बड़ी संख्या प्रिंट करना है जिसके सभी डिजिट अलग-अलग हों।

उदाहरण

Input: n = 2332 
Output: 2319

इस समस्या को हल करने के लिए, हम संख्याओं की रिवर्स काउंटिंग करेंगे यानी n से 0 तक। और अलग-अलग डिजिट वाली संख्या की जांच करेंगे। यदि वर्तमान काउंट मान शर्त को पूरा करता है तो इसे प्रिंट करें और लूप समाप्त करें। अन्यथा लूप जारी रखें। लूप अधिकतम n बार चलेगा।

उदाहरण

हमारे समाधान को लागू करने वाला प्रोग्राम:

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

int findDistinctDigitNumber(int n) { 
    for (int i = n - 1; i >= 0; i--) { 
        int count[10] = { 0 }; 
        int x = i; 
        int count1 = 0, count2 = 0; 
        while (x) { 
            count[x % 10]++; 
            x /= 10; 
            count1++; 
        } 
        for (int j = 0; j < 10; j++) { 
            if (count[j] == 1) 
                count2++; 
        } 
        if (count1 == count2) 
            return i; 
    } 
} 

int main() { 
    int n = 44324; 
    cout << "Number less than " << n << " with all digits distinct are : " << findDistinctDigitNumber(n); 
    return 0; 
}

आउटपुट

Number less than 44324 with all digits distinct are : 43987

  1. C++ में मिन हीप में मान x से छोटे सभी नोड्स प्रिंट करना C++ में मिन हीप में मान x से छोटे सभी नोड्स प्रिंट करना

    इस समस्या में, हमें एक मिन हीप और एक मान x दिया गया है और हमें x से छोटे सभी नोड्स प्रिंट करने हैं। मिन हीप मिन हीप एक विशेष प्रकार का बाइनरी ट्री है जिसमें हर नोड का मान उसके चाइल्ड नोड के मान से कम होता है। उदाहरण X = 45 आउटपुट - 2 4 7 10 17 22 33 34 अब, इस समस्या को हल करने के लिए हमें पूरे

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

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

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

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