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

C++ में दोहराए गए अंकों के साथ किसी संख्या की वर्तनी के तरीके गिनें

हमें एक संख्या दी जाती है जिसमें एक स्ट्रिंग के रूप में कई दोहराए गए अंक होते हैं। लक्ष्य इसे वर्तनी के तरीकों की संख्या खोजना है। उदाहरण के लिए 112233 को डबल वन, डबल टू डबल थ्री या एक एक दो दो तीन तीन के रूप में लिखा जा सकता है।

हम निरंतर संख्याओं की जाँच करके ऐसा करेंगे। यदि संख्या "13" है, तो इसे "एक तीन" (20) के रूप में लिखने का केवल एक ही तरीका है। यदि अंक "113" तरीके "डबल वन थ्री", "वन वन थ्री" (21) हैं। तो, दृष्टिकोण स्ट्रिंग में एक निरंतर अंक को गिनना और पिछले परिणाम के साथ 2 (गिनती -1) गुणा करना है।

आइए उदाहरणों से समझते हैं।

इनपुट

num=”11211”

आउटपुट

Count of ways to spell a number with repeated digits are: 4

स्पष्टीकरण

ways are:
1. One one two one one
2. Double one two one one
3. One one two double one
4. Double one two double one

इनपुट

num=”2212”

आउटपुट

Count of ways to spell a number with repeated digits are: 2

स्पष्टीकरण

ways are:
1. Two two one two
2. Double two one two

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • हम किसी संख्या को दर्शाने के लिए स्ट्रिंग str ले रहे हैं।

  • फ़ंक्शन word_spell(string str) संख्या को str में लेता है और इसे वर्तनी के तरीके देता है।

  • ऐसे तरीकों के लिए प्रारंभिक चर गणना को 0 के रूप में लें

  • प्रत्येक अंक के लिए लूप ट्रैवर्स str का उपयोग करना।

  • एक विशेष अंक के दोहराव की संख्या के रूप में एक चर अस्थायी लें। अगर str[i]==str[i+1], तापमान बढ़ाएँ।

  • गणना गणना =गिनती * पाउ (2, अस्थायी -1)

  • अंत में परिणाम के रूप में वापसी की गणना करें।

उदाहरण

#include<bits/stdc++.h>
using namespace std;
long long int word_spell(string str){
   long long int count = 1;
   int len = str.length();
   for (int i=0; i<len; i++){
      int temp = 1;
      while(i < len-1 && str[i+1] == str[i]){
         temp++;
         i++;
      }
      count = count * pow(2, temp-1);
   }
   return count;
}
int main(){
   string str = "222211";
   cout<<"Count of ways to spell a number with repeated digits are: "<<word_spell(str);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of ways to spell a number with repeated digits are: 16

  1. सी ++ में एक फैक्टोरियल में अंकों की गणना करें

    हमें एक पूर्णांक मान दिया गया है और कार्य पहले किसी संख्या के भाज्य की गणना करना है और फिर परिणाम में अंकों की कुल संख्या की गणना करना है। फैक्टोरियल नंबर क्या है किसी संख्या के भाज्य की गणना अंकों के मान को 1 से घटाते हुए अंकों को गुणा करके की जाती है। इसे प्रतीक ! अर्थात 0!, 1!, 2!, 3!, 5!,... द्

  1. C++ में अद्वितीय अंकों के साथ संख्याएं गिनें

    मान लीजिए कि हमारे पास एक गैर-ऋणात्मक पूर्णांक n है। हमें सभी संख्याओं को अद्वितीय अंकों x के साथ गिनना है, जहां x 0 से 10^n की सीमा में है। इसलिए यदि संख्या n 2 है, तो परिणाम 91 होगा, क्योंकि हम 11, 22, 33, 44, 55, 66, 77, 88, 99 के बिना 0 से 100 तक की संख्याएँ खोजना चाहते हैं। इसे हल करने के लिए,

  1. सी ++ में अंकों की सरणी के रूप में प्रतिनिधित्व की गई संख्या में एक जोड़ना?

    सरणी के रूप में प्रदर्शित एक संख्या सरणी के एक तत्व में संख्या के प्रत्येक अंक को संग्रहीत करती है। सरणी की लंबाई सरणी में अंकों की संख्या के बराबर होती है यानी चार अंकों की संख्या के लिए लंबाई =3। सरणी का प्रत्येक तत्व एक अंक संख्या है। संख्या को इस तरह से संग्रहीत किया जाता है कि अंतिम तत्व संख्या