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

C++ में दिए गए आकार n के एरे में r तत्वों के सभी संभावित संयोजन प्रिंट करना


इस समस्या में, हमें आकार n का एक एरे और एक धनात्मक पूर्णांक r दिया गया है। हमारा कार्य एरे के तत्वों के आकार r के सभी संभावित संयोजन प्रिंट करना है।

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

Input: {5,6,7,8} ; r = 3 Output : {5,6,7}, {5,6,8}, {5,7,8}, {6,7,8}

इस समस्या को हल करने का एक दृष्टिकोण तत्वों को फिक्स करना और फिर बाकी पर लूप या पुनरावृत्ति करके सभी संयोजन ढूंढना होगा। इसमें, हमें केवल पहले n-r+1 तत्वों को फिक्स करना होगा और बाकी पर लूप या पुनरावृत्ति करनी होगी।

उदाहरण

#include<iostream> using namespace std; void printRElementCombination(int arr[], int combination[], int start, int end, int index, int r){    if (index == r){       cout<<"{ ";       for (int j = 0; j < r; j++)          cout << combination[j] << " ";          cout<<"}\t";          return;    }    for (int i = start; i <= end && end - i + 1 >= r - index; i++){       combination[index] = arr[i];       printRElementCombination(arr, combination, i+1, end, index+1, r);    } } int main(){    int arr[] = {1, 2, 3, 4, 5};    int r = 3;    int n = 5;    int combination[r];    cout<<"The combination is : \n";    printRElementCombination(arr, data, 0, n-1, 0, r); }

आउटपुट

संयोजन है −

{ 1 2 3 } { 1 2 4 } { 1 2 5 } { 1 3 4 } { 1 3 5 } { 1 4 5 } { 2 3 4 } { 2 3 5 } { 2 4 5 } { 3 4 5 }

उसी समस्या को हल करने के अन्य तरीके वर्तमान तत्व के संयोजन में समावेश की जांच करना और आवश्यक आकार के सभी संयोजन प्रिंट करना हो सकते हैं। विचार वही है, हम तत्व पर पुनरावृत्ति करेंगे और संयोजन को कॉम्बो एरे में स्टोर करेंगे। लेकिन तत्व को फिक्स नहीं किया जाता है।

नीचे दिया गया प्रोग्राम समस्या को आपके लिए अधिक समझने योग्य बना देगा −

उदाहरण

#include <iostream> using namespace std; void combinationUtil(int arr[], int n, int r, int index, int combo[], int i){    if (index == r){       cout<<"{";       for (int j = 0; j < r; j++)          cout << combo[j] << " ";          cout<<"}\t";          return;    }    if (i >= n)       return;    combo[index] = arr[i];    combinationUtil(arr, n, r, index + 1, combo, i + 1);    combinationUtil(arr, n, r, index, combo, i+1); } int main(){    int arr[] = {1, 2, 3, 4, 5};    int r = 3;    int n = 5;    int combo[r];    cout<<"The combination is : \n";    combinationUtil(arr, n, r, 0, combo, 0);    return 0; }

आउटपुट

संयोजन है −

{1 2 3 }    {1 2 4 }    {1 2 5 }    {1 3 4 }    {1 3 5 }    {1 4 5 }       {2 3 4 }    {2 3 5 }    {2 4 5 }     {3 4 5 }

  1. C++ में दिए गए स्रोत से गंतव्य तक सभी पथ प्रिंट करें C++ में दिए गए स्रोत से गंतव्य तक सभी पथ प्रिंट करें

    इस समस्या में हमें एक निर्देशित ग्राफ दिया गया है और हमें ग्राफ के स्रोत से गंतव्य तक सभी पथ प्रिंट करने हैं। निर्देशित ग्राफ एक ग्राफ है जिसमें किनारे शीर्ष a से b की ओर निर्देशित होते हैं। समस्या को समझने के लिए एक उदाहरण लेते हैं स्रोत = K गंतव्य = P आउटपुट: P यहां, हमने K से P तक के पथ ढूंढे

  1. - C++ प्रोग्राम: दिए गए नंबर लिस्ट के सभी संभावित कॉम्बिनेशन

    यह C++ प्रोग्राम दिए गए नंबरों की लिस्ट के सभी संभावित कॉम्बिनेशन (संयोजन) उत्पन्न करता है। यह पिछले आर्टिकल (ID: 1005082327) के समान है लेकिन विशेष रूप से नंबरों के लिए है। एल्गोरिदम reqLen तो लौटें - अन्यथा यदि currLen == reqLen तो नई जनरेटेड सीक्वेंस प्रिंट करें - यदि start == len तो

  1. - C++ में फंक्शन में सरणी पैरामीटर का आकार कैसे प्रिंट करें?

    डेटा टाइप का आकार sizeof() का उपयोग करके प्राप्त किया जा सकता है। C++ में फंक्शन में सरणी पैरामीटर के आकार को प्रिंट करने को प्रदर्शित करने वाला एक प्रोग्राम निम्नलिखित है। उदाहरण #include <iostream> using namespace std; int func(int a[]) {    cout << "आकार: " <<