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

C++ में दिए गए संयोजन का उपयोग करके स्ट्रिंग्स की संख्या (R, G और B से बनी) की गणना करें

केवल तीन संख्याएँ R, G और B और अक्षर 'R', 'G' और 'B' दिए गए हैं। लक्ष्य संभावित स्ट्रिंग्स की गिनती का पता लगाना है जो कम से कम R रुपये, कम से कम G Gs और कम से कम B B का उपयोग करके बनाया जा सकता है। संख्याओं R, G और B का योग संभव स्ट्रिंग्स की लंबाई से कम या उसके बराबर है।

उदाहरण के लिए

इनपुट

R = 1, G = 1, B = 1 length=3

आउटपुट

Count of number of strings (made of R, G and B) using given combination are −
6

स्पष्टीकरण

The possible strings will be :
“RGB”, “RBG”, “BRG”, “BGR”, “GRB”, “GBR”. That is permutations of RGB.

इनपुट

R = 2, G = 0, B = 2 length=4

आउटपुट

Count of number of strings (made of R, G and B) using given combination are −
6

स्पष्टीकरण

The possible strings will be :
“RRBB”, “BBRR”, “RBRB”, “BRBR”, “RBBR”, “BRRB”.

नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है -

इस दृष्टिकोण में हम सबसे पहले R, B और G के अक्षरों को कई बार लेंगे। अब शेष लंबाई की जाँच करें - (R+G+B) अक्षर सभी क्रमपरिवर्तन और संयोजन बनाते हैं और गिनती में जोड़ते हैं।

  • इनपुट के रूप में पूर्णांक मान R, G, B लें।

  • बनाने के लिए तार की लंबाई के रूप में आकार लें।

  • फ़ंक्शन संयोजन (int R, int G, int B, int size) सभी इनपुट लेता है और दिए गए संयोजन का उपयोग करके स्ट्रिंग्स की संख्या (आर, जी और बी से बना) की संख्या देता है।

  • प्रारंभिक गणना 0 के रूप में लें।

  • शेष गणना को temp=size - (R + G + B) के रूप में लें।

  • क्रमपरिवर्तन के मान लेने के लिए लंबाई आकार+1 की एक सरणी गिरफ्तारी लें।

  • प्रारंभ में गिरफ्तारी [i] में i के फैक्टोरियल स्टोर करें। i =0 से i =आकार तक लूप के लिए उपयोग करना। सेटर[i]=arr[i−1]*i.

  • संयोजनों की गणना के लिए ट्रैवर्स एआर [] फिर से लूप के लिए दो का उपयोग करना।

  • i=0 से temp और j=0 से temp−i के लिए, temp_2 =temp - (i + j) की गणना करें।

  • temp_3 =arr[i + R] * arr[j + B] * arr[temp_2 + G] लें।

  • अब गिनती के लिए गिरफ्तारी [आकार] / temp_3 जोड़ें।

  • लूप के लिए सभी के अंत में हम संभव स्ट्रिंग्स की आवश्यक संख्या के रूप में गिने जाएंगे।

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

उदाहरण

#include<bits/stdc++.h>
using namespace std;
int combination(int R, int G, int B, int size){
   int count = 0;
   int temp = size − (R + G + B);
   int arr[size+1];
   arr[0] = 1;
   for (int i = 1; i <= size; i++){
      arr[i] = arr[i − 1] * i;
   }
   for (int i = 0; i <= temp; i++){
      for (int j = 0; j <= temp−i; j++){
         int temp_2 = temp − (i + j);
         int temp_3 = arr[i + R] * arr[j + B] * arr[temp_2 + G];
         count += arr[size] / temp_3;
      }
   }
   return count;
}
int main(){
   int R = 2, G = 1, B = 1;
   int size = 4;
   cout<<"Count of number of strings (made of R, G and B) using given combination are:
   "<<combination(R, G, B, size);
   return 0;
}

आउटपुट

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

Count of number of strings (made of R, G and B) using given combination are: 12

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

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

  1. C++ का उपयोग करके N को 25 से विभाज्य बनाने के लिए आवश्यक दी गई चालों की न्यूनतम संख्या।

    समस्या कथन बिना अग्रणी शून्य के एक संख्या N दी गई है। कार्य N को 25 से विभाज्य बनाने के लिए आवश्यक न्यूनतम चालों को खोजना है। प्रत्येक चाल पर, कोई भी दो आसन्न अंकों को स्वैप कर सकता है और यह सुनिश्चित कर सकता है कि किसी भी समय संख्या में कोई अग्रणी शून्य नहीं होना चाहिए। यदि N को 25 से विभाज्य बनान

  1. ऐसी संख्या x ज्ञात कीजिए कि C++ का प्रयोग करते हुए x और उसके अंकों का योग दिए गए n के बराबर हो।

    यहां हम एक समस्या देखेंगे, जहां हम एक संख्या n लेते हैं, हमें एक और मान x ज्ञात करना होता है, जैसे कि x का x + अंकों का योग दी गई संख्या n के समान हो। मान लीजिए n का मान 21 है। यह प्रोग्राम एक संख्या x =15, 15 + अंकों का योग 15, यानी 15 + 1 + 5 =21 =n के रूप में लौटाएगा। इस समस्या को हल करने के लिए