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

C++ में N से छोटी अधिकतम 2 अद्वितीय अंकों वाली सभी संख्याएं प्रिंट करना


इस समस्या में, हमें एक पूर्णांक N दिया गया है और हमें N से छोटी उन सभी संख्याओं को प्रिंट करना है जिनमें अधिकतम 2 अद्वितीय अंक हों यानी संख्या बनाने के लिए अधिकतम 2 अलग-अलग अंकों का उपयोग किया जा सकता है।

उदाहरण

Input: N = 17 
Output: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

इस समस्या को हल करने के लिए, हम उन सभी संख्याओं को जनरेट करेंगे जिनमें केवल दो अद्वितीय अंक हों। हमारी संख्या जनरेट करने की प्रक्रिया 0 से शुरू होती है और तब समाप्त होती है जब हमारी संख्या N के बराबर या उससे बड़ी हो जाती है। दो अद्वितीय अंक चुने जाने के लिए, num*10+i और num*10+j का उपयोग करके रिकर्सिवली संख्याएं जनरेट करें। इस प्रक्रिया में कुछ डुप्लिकेट संख्याएं उत्पन्न हो सकती हैं। इसलिए, हम संख्याओं को संग्रहीत करने के लिए सेट का उपयोग कर सकते हैं ताकि डुप्लिकेट से बचा जा सके।

उदाहरण

यह प्रोग्राम समस्या को हल करने के हमारे दृष्टिकोण का कार्यान्वयन दिखाता है:

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

set<int> numbers; 

void generateNumbers(int n, int num, int i, int j) { 
    if (num > 0 && num < n) 
        numbers.insert(num); 
    if (num >= n) 
        return; 
    if (num * 10 + i > num) 
        generateNumbers(n, num * 10 + i, i, j); 
    generateNumbers(n, num * 10 + j, i, j); 
} 

void printUniqueBitNumber(int n) { 
    for (int i = 0; i <= 9; i++) 
        for (int j = i + 1; j <= 9; j++) 
            generateNumbers(n, 0, i, j); 
    cout << "The numbers are generated are : "; 
    while (!numbers.empty()) { 
        cout << *numbers.begin() << " "; 
        numbers.erase(numbers.begin()); 
    } 
} 

int main() { 
    int n = 17; 
    printUniqueBitNumber(n); 
    return 0; 
}

आउटपुट

The numbers are generated are : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

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

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

  1. - C++ में Y से कम संख्याओं वाले न्यूनतम सेटों की संख्या

    समस्या कथन लगातार अंकों की एक स्ट्रिंग और एक संख्या Y दी गई है। न्यूनतम सेटों की संख्या ढूंढनी है ताकि प्रत्येक सेट निम्न नियमों का पालन करे: सेट में लगातार संख्याएं होनी चाहिए कोई अंक एक से अधिक बार उपयोग नहीं किया जा सकता सेट में संख्या Y से अधिक नहीं होनी चाहिए उदाहरण यदि str = 123

  1. - C++ में n से कम या बराबर सभी फैक्टोरियल संख्याएं खोजें

    यहां हम देखेंगे कि n से कम या बराबर सभी फैक्टोरियल संख्याओं को कैसे प्रिंट किया जाए। एक संख्या N को फैक्टोरियल संख्या कहा जाता है यदि यह किसी धनात्मक संख्या का फैक्टोरियल है। इसलिए कुछ फैक्टोरियल संख्याएं हैं: 1, 2, 6, 24, 120। फैक्टोरियल संख्याओं को प्रिंट करने के लिए, हमें सीधे फैक्टोरियल खोजने क