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 मॉड 10 है। हम इसकी तुलना पिछले डिजिट से करते हैं। यदि डिजिट्स समान हैं, तो हम n को ट्रैवर्स करते हैं। यदि वे समान नहीं हैं, तो हम इस डिजिट को अपनी नई संख्या में जोड़ते हैं, पिछले डिजिट को वर्तमान में बदलते हैं, और लूप जारी रखते हैं।

उदाहरण

#include <bits/stdc++.h> #define MOD 1000000007 using namespace std; int main() {    int n = 1222333232; // दिया गया n    int new_n = 0; // नई संख्या    int po = 1; // नए डिजिट्स के लिए दस का गुणक होगा    int prev = -1; // पिछला डिजिट    int curr; // वर्तमान डिजिट    while(n) {       curr = n % 10;       if(prev != curr) { // यदि एक डिजिट रिपीट नहीं होता है तो हम इस ब्लॉक में जाते हैं          new_n = new_n + (curr * po); // हम नए डिजिट को new_n में जोड़ते हैं          po *= 10;          prev = curr;       }       n /= 10;    }    cout << new_n << "\n";    return 0; }

आउटपुट

123232

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

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

निष्कर्ष

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


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

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

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

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

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

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