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

C++ में दी गई श्रेणी में सभी अच्छे नंबरों को प्रिंट करें

इस समस्या में, हमें तीन मान L, R और d दिए गए हैं। हमारा काम सभी अच्छे नंबर . को प्रिंट करना है एल से आर की सीमा के भीतर जिसमें d का अंक नहीं है।

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

अब, समस्या को समझने के लिए एक उदाहरण लेते हैं,

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

स्पष्टीकरण − 400 से 500 के बीच की अच्छी संख्याएँ हैं −

410, 420, 421, 430, but we cannot use 3 so 430 is not printed.

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

अच्छे नंबर की जांच करें - हम संख्या को दाएं से बाएं पार करेंगे, और किसी भी बिंदु पर एक योग बनाए रखेंगे, यदि योग अगली संख्या से अधिक है तो झूठी वापसी करें।

उदाहरण

आइए नीचे दिए गए एल्गोरिथम को स्पष्ट करने के लिए प्रोग्राम देखें -

#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++ में दिए गए नोड से k दूरी पर सभी नोड्स प्रिंट करें

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

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

    जब किसी विशिष्ट संख्या से विभाज्य किसी दी गई श्रेणी में सभी तत्वों को मुद्रित करने की आवश्यकता होती है, तो लूप के लिए एक सरल का उपयोग किया जा सकता है। नीचे उसी का एक प्रदर्शन है - उदाहरण lower_num = int(input("Enter lower range limit...")) upper_num = int(input("Enter upper range lim