इस समस्या में, हमें दो पूर्णांक 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