{0, 1, 2, 3, 4, 5} अंकों से बनने वाली संख्याएँ हैं
0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, 25, आदि..
हम पहले 6 अंकों का उपयोग करके उपरोक्त अनुक्रम बना सकते हैं। आइए संख्याओं के बनने का एक उदाहरण देखें।
1 * 10 + 0 = 10 1 * 10 + 1 = 11 1 * 10 + 2 = 12 1 * 10 + 3 = 13 1 * 10 + 4 = 14 1 * 10 + 5 = 15
इसी तरह, संख्या 2, 3, 4, 5 के लिए आवेदन करें। उपरोक्त पैटर्न का उपयोग करके आपको 2 के साथ अगले 6 नंबर मिलेंगे। और उसके बाद 3 उसके बाद 4 और 5।
एल्गोरिदम
- संख्या n प्रारंभ करें।
- वेक्टर इनिशियलाइज़ करें।
- एक लूप लिखें जो 0 से 5 तक पुनरावृत्त हो।
- सभी नंबरों को वेक्टर पर पुश करें।
- हमारे पास श्रृंखला के पहले छह अंक हैं।
- ऐसा लूप लिखें जो 0 से n/6 तक पुनरावृत्त हो।
- एक लूप लिखें जो 0 से 5 तक पुनरावृत्त हो।
- उपरोक्त चर्चा पैटर्न के साथ शेष संख्याएं उत्पन्न करें।
- उन्हें वेक्टर पर पुश करें।
- एक लूप लिखें जो 0 से 5 तक पुनरावृत्त हो।
- अनुक्रम से n-वें नंबर लौटाएं।
कार्यान्वयन
C++ में उपरोक्त एल्गोरिथम का कार्यान्वयन निम्नलिखित है
#include <bits/stdc++.h> using namespace std; int findNthNumber(int n) { vector<int> numbers; for (int i = 0; i < 6; i++) { numbers.push_back(i); } for (int i = 0; i <= n / 6; i++) { for (int j = 0; j < 6; j++) { if ((numbers[i] * 10) != 0) { numbers.push_back(numbers[i] * 10 + numbers[j]); } } } return numbers[n - 1]; } int main() { int n = 7; cout << findNthNumber(n) << endl; return 0; }
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।
10