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

C++ में दिए गए मान से छोटे या उसके बराबर सभी जंपिंग नंबर प्रिंट करें


इस समस्या में, हमें एक नंबर n दिया जाता है और हमें n से छोटे या बराबर सभी जंपिंग नंबर प्रिंट करने होते हैं।

जंपिंग नंबर वे संख्याएँ हैं जिनके आसन्न अंक केवल एक से भिन्न होते हैं। कुछ जंपिंग नंबर 4565, 98, 7 हैं। सभी सिंगल-डिजिट नंबर को जंपिंग नंबर माना जाता है। 235 एक कूदने वाली संख्या नहीं है।

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

Input: N = 32
Output: 0 1 2 3 4 5 6 7 8 9 10 12 21 23 32

इस समस्या को हल करने के लिए, हम एक ग्राफ मानेंगे जहां 0 प्रारंभिक नोड है और इसे सभी पहुंच योग्य नोड्स तक ले जाया जाता है। आप BFS . का उपयोग करके इसे पार कर सकते हैं या डीएफएस . यह ग्राफ़ एक ऐसी स्थिति का उपयोग करके बनाया गया है जो मानों को उछलती हुई संख्या बनाती है।

उदाहरण

नीचे दिया गया कोड हमारे समाधान को लागू करता है -

#include <bits/stdc++.h>
using namespace std;
void traverse(int N, int num) {
   queue<int> q;
   q.push(num);
   while (!q.empty()) {
      num = q.front();
      q.pop();
      if (num <= N) {
         cout << num << " ";
         int last_dig = num % 10;
         if (last_dig == 0)
            q.push((num * 10) + (last_dig + 1));
         else if (last_dig == 9)
            q.push((num * 10) + (last_dig - 1));
         else {
            q.push((num * 10) + (last_dig - 1));
            q.push((num * 10) + (last_dig + 1));
         }
      }
   }
}
void printJumpingNumber(int N) {
   cout<<0<<" ";
   for (int i = 1; i <= 9 && i <= N; i++)
   traverse(N, i);
}
int main() {
   int N = 54;
   cout<<"Jumping Numbers less than "<<N<<" are :\n";
   printJumpingNumber(N);
   return 0;
}

आउटपुट

Jumping Numbers less than 54 are −
0 1 10 12 2 21 23 3 32 34 4 43 45 5 54 6 7 8 9

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

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

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

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

  1. C++ में n से कम या उसके बराबर सभी भाज्य संख्याएँ ज्ञात कीजिए

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