केवल तीन संख्याएँ 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