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 से कम के सभी नोड्स प्रिंट करें

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

  1. ऐसी संख्या x ज्ञात कीजिए कि C++ का प्रयोग करते हुए x और उसके अंकों का योग दिए गए n के बराबर हो।

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

  1. ऐसी संख्या x ज्ञात कीजिए कि C++ में x और उसके अंकों का योग दिए गए n के बराबर हो

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