वे संख्याएँ जिनके अंकों का योग 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