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

किसी दिए गए आधार में C++ पांडिजिटल संख्या

वह संख्या जिसमें 0 से आधार B तक के सभी अंक होते हैं, उस आधार की पांडिजिटल संख्या कहलाती है। हालाँकि, कुछ संख्याओं में 1 से 9 तक के अंक होते हैं और उन्हें शून्य रहित पांडिजिटल संख्याएँ कहा जाता है। पांडिजिटल नंबरों के कुछ उदाहरण 0123456789, 0789564312, आदि हैं।

इस ट्यूटोरियल में, हम एक समस्या पर चर्चा करेंगे जहाँ हमें एक संख्या और एक आधार दिया जाता है, और हमें यह जाँचने की आवश्यकता है कि दिए गए आधार में संख्या पांडिजिटल है या नहीं, उदाहरण के लिए -

Input: num = “9651723467380AZ”, base = 10
Output: YES
Explanation: num contains all the digits in the base 10 i.e from 0 to 9, so it is a pandigital number.

Input: num = “130264ABCDE745789”, base = 16
Output: NO
Explanation: num does not contain F(15) which is in the base 16 i.e from 0 to 15, so it is not a pandigital number.

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

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

  • प्रत्येक वर्ण को एक बार में लेते हुए, स्ट्रिंग के माध्यम से पार करें।

  • फिर जांचें कि क्या तत्व एक पूर्णांक या वर्णमाला है।

  • यदि यह एक वर्णमाला है, तो 2 अंकों को दर्शाने के लिए उसके स्थान पर 10 जोड़ दें।

  • मानों को सेट में स्टोर करें।

  • ट्रैवर्स करने के बाद, जांचें कि सेट का आकार आधार के बराबर है या नहीं।

उदाहरण

उपरोक्त दृष्टिकोण के लिए C++ कोड

 
#include<bits/stdc++.h>
using namespace std;
int main(){
    int base = 10;
    char n[] = "9651723467380AZ";
    // Declaring set to store unique values.
    set<int, greater<int> > s;
    // Traversing through the string.
    for (int i = 0; i < strlen(n); i++){
        // Checking if element is Integer.
        if (n[i] >= '0' && n[i] <= '9')
           s.insert(n[i]- '0');
        // Checking if element is alphabet.
        else if (n[i] - 'A' <= base - 11)
           s.insert(n[i] - 'A' + 10) ;
    }
    // Checking if all the digits are present.
    if(s.size()==base)
       cout<< "YES";
    else
        cout<< "NO";
    return 0;
}

आउटपुट

YES

निष्कर्ष

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


  1. C++ में मितव्ययी संख्या

    इस समस्या में, हमें एक धनात्मक पूर्णांक N दिया जाता है। हमारा कार्य यह जाँचने के लिए एक प्रोग्राम बनाना है कि दी गई संख्या मितव्ययी संख्या है या नहीं। मितव्ययी संख्या - एक संख्या जिसके अंकों की संख्या दी गई संख्या के अभाज्य गुणनखंड में अंकों की संख्या से अधिक है। उदाहरण − 625, संख्या 625 का अभाज्

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

    इस लेख में, हमें एक संख्या n दी गई है, और हमें दी गई संख्या में दोहराए गए अंकों को हटाने की आवश्यकता है। Input: x = 12224 Output: 124 Input: x = 124422 Output: 1242 Input: x = 11332 Output: 132 दी गई समस्या में, हम सभी अंकों को देखेंगे और दोहराए जाने वाले अंकों को हटा देंगे। समाधान खोजने के लिए द

  1. सी++ पेंटाटोप नंबर

    पास्कल के त्रिभुज में एक पंचकोण संख्या को पाँचवीं संख्या के रूप में वर्णित किया गया है। अब, जैसा कि आप जानते हैं, यह पांचवीं संख्या है, तो इसका मतलब है कि हमारे पास पास्कल के त्रिकोण में कम से कम पांच संख्याएं होनी चाहिए, इसलिए इस श्रृंखला की पहली संख्या 1 4 6 4 1 से शुरू होती है। पास्कल त्रिभुज की