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

C++ का उपयोग करके किसी दिए गए नंबर में दोहराए गए अंकों को हटा दें

इस लेख में, हमें एक संख्या n दी गई है, और हमें दी गई संख्या में दोहराए गए अंकों को हटाने की आवश्यकता है।

Input: x = 12224
Output: 124

Input: x = 124422
Output: 1242

Input: x = 11332
Output: 132

दी गई समस्या में, हम सभी अंकों को देखेंगे और दोहराए जाने वाले अंकों को हटा देंगे।

समाधान खोजने के लिए दृष्टिकोण

दिए गए दृष्टिकोण में, हम n के सभी अंकों को दाएँ से बाएँ तक जानेंगे। हम n के मॉड को 10 से लेकर और फिर n को 10 से विभाजित करके n के अंकों से गुजरते हैं। अब हमारा वर्तमान अंक n mod 10 है। हम इसे पिछले अंक से जांचते हैं। यदि अंक बराबर हैं, तो अब हम n को पार करते हैं। यदि वे समान नहीं हैं, तो हम इस अंक को अपने नए नंबर में जोड़ते हैं, पिछले अंक को वर्तमान में बदलते हैं, और लूप जारी रखते हैं।

उदाहरण

#include <bits/stdc++.h>

#define MOD 1000000007

using namespace std;

int main() {
   int n = 1222333232; // given n
   int new_n = 0; // new number
   int po = 1; // will b multiple of ten for new digits
   int prev = -1; // previous digit
   int curr; // current digit
   while(n) {
      curr = n % 10;
      if(prev != curr) { // if a digit is not repeated then we go in this block
         new_n = new_n + (curr * po); // we add a new digit to new_n
         po *= 10;
         prev = curr;
      }
      n /= 10;
   }
   cout << new_n << "\n";
   return 0;
}

आउटपुट

123232

उपरोक्त कोड की व्याख्या

उपरोक्त दृष्टिकोण में, हम केवल n के अंकों के माध्यम से आगे बढ़ रहे हैं, जब हमारा पिछला अंक और वर्तमान अंक मेल नहीं खाता है, हम इस तरह के अंक को अपने नए नंबर में जोड़ते हैं, और जैसे ही हमारा अंक जोड़ा जाता है, हम पीओ भी बढ़ाते हैं, जो कि है हमारे अंकों की स्थिति के लिए उपयोग किया जा रहा है यदि हमारे वर्तमान और पिछले अंक मेल खाते हैं-हम इस ब्लॉक को नहीं चलाते हैं और लूप को तब तक जारी रखते हैं जब तक हमारा n 0 नहीं हो जाता।

निष्कर्ष

इस लेख में, हम एक दी गई संख्या में दोहराए गए अंकों को हटाने के लिए एक समस्या का समाधान करते हैं। हमने इस समस्या के लिए C++ प्रोग्राम और संपूर्ण दृष्टिकोण (Normal) भी सीखा जिसके द्वारा हमने इस समस्या को हल किया। हम उसी प्रोग्राम को अन्य भाषाओं जैसे सी, जावा, पायथन और अन्य भाषाओं में लिख सकते हैं। हमें उम्मीद है कि आपको यह लेख मददगार लगा होगा।


  1. C++ में दी गई संख्या के सेट बिट्स का उपयोग करते हुए न्यूनतम संख्या

    समस्या कथन एक अहस्ताक्षरित संख्या को देखते हुए, दी गई अहस्ताक्षरित संख्या के बिट्स का उपयोग करके बनाई जा सकने वाली न्यूनतम संख्या ज्ञात कीजिए। उदाहरण यदि इनपुट =10 तो उत्तर 3 होगा 10 का बाइनरी प्रतिनिधित्व 1010 है और 2सेट बिट्स के साथ न्यूनतम संख्या 0011 है यानी 3 एल्गोरिदम 1. Count the number of

  1. C++ में दी गई संख्या के अंकों का उपयोग करके बनाई जा सकने वाली अधिकतम संख्या ज्ञात कीजिए

    मान लीजिए कि हमारे पास कई n अंक हैं। हमें वह अधिकतम संख्या ज्ञात करनी है जो उस संख्या के अंकों के सभी अंकों का प्रयोग करके प्राप्त की जा सकती है। अतः यदि संख्या 339625 कहें तो अधिकतम संख्या 965332 हो सकती है। समस्या से, हम देख सकते हैं कि हम अंकों को गैर-बढ़ते क्रम में आसानी से सॉर्ट कर सकते हैं, फ

  1. सी ++ प्रोग्राम किसी दिए गए नंबर के अंकों का योग करने के लिए

    C++ भाषा में अंकों के योग की गणना करने के लिए यहां एक उदाहरण दिया गया है, उदाहरण #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "Enter the number : ";    cin >> x;    while (x != 0) {