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

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

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

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

1 =ए
2 =बी
3 =एए
4 =एबी
5 =बीए
6 =बीबी
7 =एएए
8 =एएबी


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

इनपुट: एन =12

आउटपुट: बाब

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

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

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

उदाहरण

#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. सी ++ में एक std ::स्ट्रिंग और एक int को कैसे जोड़ना है?

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

  1. स्ट्रिंग को संख्या में कनवर्ट करना और इसके विपरीत C++ में

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