Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C/C++ में एक नंबर डायल करने के लिए उपयोग की जा सकने वाली स्ट्रिंग्स के सभी संयोजन

दिए गए नंबर के संबंध में, निम्नलिखित विशिष्टताओं की मदद से फोन में दिए गए नंबर को डायल करने के लिए उपयोग की जा सकने वाली स्ट्रिंग्स के सभी संभावित संयोजनों को प्रदर्शित या प्रिंट करें।

  • दिए गए फोन में, हम डायल कर सकते हैं,

  • 2 को A या B या C से लागू करके,

  • 3 को D या E या F से लागू करके,

  • ...........

  • 8 को T या U या V से लागू करके,

  • 9 को W या X या Y या Z से लागू करके,

  • 1 केवल 1 से लागू करके

  • 0 को 0 से लागू करके।

उदाहरण के लिए यदि 89 दिया गया फोन नंबर है, तो प्रोग्राम को प्रिंट करना चाहिए

TW,TX,TY,TZ,UW,UX,UY,UZ,VW,VX,VY,VZ

#include 
#include 
// TableHash[i] फोन में डिजिट i से संबंधित सभी कैरेक्टर्स स्टोर करता है
const char TableHash[10][5] = {"", "", "WXYZ", "TUV", "PQRS", "MNO", "GHI", "GHI", "DEF", "ABC"};
// इनपुट नंबर number1[] के आकार n1 से प्राप्त किए जा सकने वाले सभी संभावित शब्दों को प्रिंट करने के लिए एक रिकर्सिव फंक्शन। आउटपुट शब्द एक-एक करके output1[] में स्टोर होते हैं
void UtilWordsPrint(int number1[], int curr_digit1, char output1[], int n1) {
    // बेस केस में, यदि वर्तमान आउटपुट शब्द तैयार है
    int i;
    if (curr_digit1 == n1) {
        printf("%s ", output1);
        return;
    }
    // हम number1[] में वर्तमान डिजिट के लिए सभी 3 संभावित कैरेक्टर्स आजमाते हैं
    // और शेष डिजिट्स के लिए रिकर्स करते हैं
    for (i=0; i

आउटपुट

WTP WTQ WTR WTS WUP WUQ WUR WUS WVP WVQ WVR WVS XTP XTQ XTR XTS XUP XUQ XUR XUS XVP XVQ XVR XVS YTP YTQ YTR YTS YUP YUQ YUR YUS YVP YVQ YVR YVS ZTP ZTQ ZTR ZTS ZUP ZUQ ZUR ZUS ZVP ZVQ ZVR ZVS

टाइम कॉम्प्लेक्सिटी: उपरोक्त कोड की टाइम कॉम्प्लेक्सिटी O(4^n) होगी जहां n को इनपुट नंबर में डिजिट्स की संख्या माना जाता है।

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

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

  1. - C++ में दिए गए नंबर तक जुड़ने वाले सभी संयोजन ढूंढना

    मान लीजिए हमारे पास एक धनात्मक संख्या n है। हमें उन सभी धनात्मक संख्याओं के संयोजन ढूंढने हैं जो उस संख्या तक जुड़ते हैं। यहां हम केवल संयोजन चाहते हैं, क्रमचय नहीं। n=4 के लिए संयोजन होंगे: [1,1,1,1], [1,1,2], [2,2], [1,3], [4] हम इसे रिकर्सन का उपयोग करके हल करेंगे। हमारे पास संयोजन स्टोर करने के

  1. - C++ में वे फ़ंक्शन जिन्हें ओवरलोड नहीं किया जा सकता

    फंक्शन ओवरलोडिंग नियम C++ में, हम फ़ंक्शन्स को ओवरलोड कर सकते हैं। लेकिन कभी-कभी ओवरलोडिंग नहीं की जाती। इस सेक्शन में, हम उन विभिन्न मामलों को देखेंगे जिनमें हम फ़ंक्शन्स को ओवरलोड नहीं कर सकते। 1. केवल रिटर्न टाइप अलग होने पर जब फ़ंक्शन सिग्नेचर्स समान हों, केवल रिटर्न टाइप अलग हो, तो हम फ़ंक्शन