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

C++ में दी गई रेंज में सभी गुड नंबर्स प्रिंट करना


इस समस्या में, हमें तीन मान L, R, और d दिए गए हैं। हमारा कार्य रेंज L से R के भीतर उन सभी गुड नंबर्स को प्रिंट करना है जिनमें d उनके डिजिट के रूप में नहीं है।

गुड नंबर

गुड नंबर वह संख्या है जिसमें प्रत्येक डिजिट उसके दाईं ओर के सभी डिजिट्स के योग से बड़ा होता है (सभी कम महत्वपूर्ण बिट्स)। उदाहरण के लिए, 732 एक गुड नंबर है, 7 > 3+2 और 3 > 2।

उदाहरण

Input: L = 400, R = 500, k = 3 
Output: 410, 420, 421

व्याख्या - 400 से 500 के बीच गुड नंबर्स हैं -

410, 420, 421, 430, लेकिन हम 3 का उपयोग नहीं कर सकते इसलिए 430 प्रिंट नहीं होता।

इस समस्या को हल करने के लिए, हम दी गई रेंज यानी L से R के भीतर सभी संख्याओं की जांच करेंगे। यदि कोई संख्या गुड नंबर है और उसका कोई भी डिजिट k के बराबर नहीं है, तो इसे प्रिंट करें अन्यथा छोड़ दें।

गुड नंबर की जांच - हम संख्या को दाएं से बाएं पार करेंगे, और एक योग बनाए रखेंगे। किसी भी बिंदु पर यदि योग अगले नंबर से बड़ा है तो false लौटाएं।

उदाहरण

नीचे दिए गए एल्गोरिदम को दर्शाने वाला प्रोग्राम:

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

bool isvalidNumber(int n, int d) { 
    int digit = n % 10; 
    int sum = digit; 
    if (digit == d) 
        return false; 
    n /= 10; 
    while (n) { 
        digit = n % 10; 
        if (digit == d || digit <= sum) 
            return false; 
        else { 
            sum += digit; 
            n /= 10; 
        } 
    } 
    return 1; 
} 

void printGoodNumbersLtoR(int L, int R, int d) { 
    for (int i = L; i <= R; i++) { 
        if (isvalidNumber(i, d)) 
            cout << i << " "; 
    } 
} 

int main() { 
    int L = 400, R = 600, d = 3; 
    cout << "All good numbers from " << L << " to " << R << " that do not contain " << d << " are :\n"; 
    printGoodNumbersLtoR(L, R, d); 
    return 0; 
}

आउटपुट

All good numbers from 400 to 600 that do not contain 3 are - 410 420 421 510 520 521 540

  1. C++ में BST कीज़ को दी गई रेंज में प्रिंट करना - O(1) स्पेस C++ में BST कीज़ को दी गई रेंज में प्रिंट करना - O(1) स्पेस

    इस समस्या में, हमें दो मान k1 और k2 (k1 < k2) दिए गए हैं, और बाइनरी सर्च ट्री की रूट। हमारा कार्य दी गई रेंज में BST कीज़ प्रिंट करने का प्रोग्राम बनाना है। समस्या विवरण: हम ट्री की सभी कीज़ को n1 से n2 तक बढ़ते क्रम में प्रिंट करेंगे। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट: k1 = 4, k2

  1. C++ में दिए गए नोड से दूरी K पर सभी नोड्स प्रिंट करना C++ में दिए गए नोड से दूरी K पर सभी नोड्स प्रिंट करना

    इस समस्या में, हमें एक बाइनरी ट्री, एक टारगेट नोड और एक पूर्णांक K दिया गया है। हमें ट्री के उन सभी नोड्स को प्रिंट करना है जो टारगेट नोड से दूरी K पर हैं। बाइनरी ट्री बाइनरी ट्री एक विशेष ट्री है जिसके प्रत्येक नोड में अधिकतम दो नोड्स होते हैं (एक/दो/कोई नहीं)। उदाहरण K = 2 टारगेट नोड: 9 आउटपुट

  1. - दिए गए नंबर से विभाज्य रेंज में सभी नंबर प्रिंट करने का पायथन प्रोग्राम

    जब दिए गए रेंज में उन सभी एलिमेंट्स को प्रिंट करना हो जो किसी विशिष्ट संख्या से विभाज्य हों, तो एक साधारण for लूप का उपयोग किया जा सकता है। उदाहरण lower_num = int(input(निचली रेंज सीमा दर्ज करें...)) upper_num = int(input(ऊपरी रेंज सीमा दर्ज करें...)) div_num = int(input(वह संख्या दर्ज करें जिससे व