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

C++ में संख्या को लेक्सिकोग्राफिक क्रम में 'A' और 'B' की स्ट्रिंग के रूप में प्रिंट करें


इस समस्या में, हमें एक संख्या N दी गई है। हमारा कार्य संख्या को लेक्सिकोग्राफिक क्रम में 'A' और 'B' की स्ट्रिंग के रूप में प्रिंट करने के लिए एक प्रोग्राम बनाना है। 

सभी संख्याओं का 'A' और 'B' की स्ट्रिंग के रूप में प्रतिनिधित्व है

1 = A
 2 = B
 3 = AA
 4 = AB
 5 = BA
 6 = BB
 7 = AAA
 8 = AAB


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

इनपुट: N = 12

आउटपुट: BAB

समाधान दृष्टिकोण

'A' और 'B' की स्ट्रिंग बाइनरी संख्या के समान है। स्ट्रिंग खोजने के लिए, हम पहले स्ट्रिंग की लंबाई खोजेंगे, इस तथ्य का उपयोग करके कि लंबाई 1 की 2 संख्याएं हैं (आकार 2 तक), लंबाई 2 की 4 संख्याएं हैं (आकार 6 तक), लंबाई 3 की 8 संख्याएं हैं (आकार 14 तक)।  लंबाई खोजने के बाद हमें स्ट्रिंग के कैरेक्टर्स खोजने होंगे। शेष लंबाई को पुनरावृत्त रूप से अपडेट करके जैसे ही हम स्ट्रिंग में संख्याएं जोड़ते हैं। कैरेक्टर N की तुलना (2^(शेष लंबाई)) से करके तय किया जाता है, यदि N छोटा है तो वर्तमान कैरेक्टर 'B' है अन्यथा 'A'। प्रत्येक पुनरावृत्ति के बाद हम लंबाई को 1 से घटाएंगे और यदि कैरेक्टर 'B' है तो N को अपडेट करेंगे, और इसे num से घटाएंगे।

हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम,

उदाहरण

#include <iostream> #include<math.h> using namespace std; int findStringLength(int M) {    int stringLen = 1;    while((pow(2, stringLen + 1) - 2) < M) {       stringLen++;    }    return stringLen; } void printNumString(int N) {        int stringLen, num, stringNumber;    stringLen = findStringLength(N);    stringNumber = N - (pow(2, stringLen) - 2);    while (stringLen) {       num = pow(2, stringLen - 1);       if (num < stringNumber) {          cout<<"B";          stringNumber -= num; }       else {          cout<<"A";       }       stringLen--;    } } int main() {    int N = 47;    cout<<"The number as sting of 'A' and 'B' in lexicographic order is ";    printNumString(N);    return 0; }

आउटपुट

The number as sting of 'A' and 'B' in lexicographic order is BAAAA

  1. - C++ में स्ट्रिंग को अवरोही क्रम में क्रमबद्ध करना

    आरोही या अवरोही क्रम में क्रमबद्ध करना, हालांकि, C++ प्रोग्रामिंग में स्ट्रिंग सॉर्ट मेथड और अन्य माध्यमों का उपयोग करके उचित रूप से किया जा सकता है। लेकिन यहां, आंतरिक और बाहरी पार करने वाले लूप में स्ट्रिंग तुलना (पहले शब्द की दूसरे से) और कॉपी (पहले शब्द को अस्थायी चर में कॉपी करना) विधि शामिल है

  1. - C++ में std::string और int को जोड़ना

    इस प्रोग्राम में हम देखेंगे कि C++ में स्ट्रिंग और इंटीजर टाइप डेटा को कैसे जोड़ा जाए। स्ट्रिंग और इंटीजर डेटा को जोड़ने के लिए, हमें पहले इंटीजर को स्ट्रिंग में बदलना होगा। इसे बदलने के लिए हम stringstream का उपयोग कर रहे हैं। यह कुछ सुविधाएं प्रदान करता है। यह नंबर या स्ट्रिंग लेता है फिर उसे स्ट

  1. - C++ में स्ट्रिंग को नंबर में और नंबर को स्ट्रिंग में बदलना

    इस सेक्शन में हम देखेंगे कि स्ट्रिंग को नंबर में और नंबर को स्ट्रिंग में कैसे बदलें। पहले हम देखेंगे कि स्ट्रिंग को नंबर में कैसे बदलें। स्ट्रिंग से नंबर रूपांतरण यहां हम देखेंगे कि नंबर स्ट्रिंग को इंटीजर टाइप डेटा में कैसे बदलें। हम इस समस्या को atoi() फंक्शन का उपयोग करके हल कर सकते हैं। यह फंक