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