वे संख्याएँ जिनके अंकों का योग 10 के बराबर है, वे हैं
19, 28, 37, 46, 55, 64, 73, 82, 91, आदि..
यदि आप श्रृंखला को देखें, तो प्रत्येक संख्या में 9 की वृद्धि होती है। उपरोक्त क्रम में ऐसी संख्याएँ हैं जिनके अंकों का योग 9 से वृद्धि करते हुए 10 के बराबर नहीं है। लेकिन, आपको वे सभी संख्याएँ मिलेंगी जिनके अंकों का योग 10 के बराबर है।पी>
तो, हमारे पास एक लूप हो सकता है जो 9 से बढ़ता है और अंकों के योग की जांच करता है और एन-वें नंबर पाता है। आइए कुछ उदाहरण देखें
इनपुट्स
3 7
आउटपुट
37 73
एल्गोरिदम
- संख्या प्रारंभ करें n
- एक काउंटर को 0 से प्रारंभ करें।
- ऐसा लूप लिखें जो 19 . से पुनरावृत्त हो
- यदि वर्तमान संख्या अंकों का योग 10 है, तो काउंटर को 1 से बढ़ा दें।
- यदि काउंटर n के बराबर है, तो वर्तमान संख्या लौटाएं।
- पुनरावृत्त चर को 9 से बढ़ाएँ।
कार्यान्वयन
C++ में उपरोक्त एल्गोरिथम का कार्यान्वयन निम्नलिखित है
#include <bits/stdc++.h> using namespace std; int findNthNumber(int n) { int count = 0, i = 19; while (true) { int sum = 0; for (int number = i; number > 0; number = number / 10) { sum = sum + number % 10; } if (sum == 10) { count++; } if (count == n) { return i; } i += 9; } return -1; } int main() { int n = 7; cout << findNthNumber(7) << endl; return 0; }
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।
73