इस समस्या में, हमें दो पूर्णांक K और n दिए गए हैं। हमारा काम पहली n प्राकृतिक संख्याओं का उपयोग करके लंबाई K के सभी बढ़ते अनुक्रमों को प्रिंट करना है।
बढ़ता क्रम संख्याओं का एक क्रम है जिसमें अगले तत्व का मान पिछले वाले से अधिक होता है।
आइए समस्या को समझने के लिए एक उदाहरण लेते हैं -
Input: n = 4, K = 2 Output: 1 2 1 3 1 4 2 3 2 4 3 4
इस समस्या को हल करने के लिए, हम एक k लंबाई सरणी बनाएंगे जो सरणी के वर्तमान अनुक्रम को संग्रहीत करती है। और सरणी में प्रत्येक स्थिति के लिए, हम पिछले तत्व की जांच करेंगे और अगले तत्वों का चयन करेंगे जो पिछले वाले से बड़े हैं। हम एक-एक करके सभी मानों को 1 से n तक ठीक करने का प्रयास करेंगे।
उदाहरण
उपरोक्त तर्क को स्पष्ट करने के लिए प्रोग्राम -
#include<iostream> using namespace std; void printSequence(int arr[], int k) { for (int i=0; i<k; i++) cout<<arr[i]<<" "; cout<<endl; } void printKLengthSequence(int n, int k, int &len, int arr[]) { if (len == k) { printSequence(arr, k); return; } int i = (len == 0)? 1 : arr[len-1] + 1; len++; while (i<=n) { arr[len-1] = i; printKLengthSequence(n, k, len, arr); i++; } len--; } void generateSequence(int n, int k) { int arr[k]; int len = 0; printKLengthSequence(n, k, len, arr); } int main() { int k = 3, n = 4; cout<<"Sequence of length "<<k<<" generated using first "<<n<<" natural numbers :\n"; generateSequence(n, k); return 0; }
आउटपुट
A sequence of length 3 generated using first 4 natural numbers − 1 2 3 1 2 4 1 3 4 2 3 4