যে সংখ্যার অঙ্কের যোগফল 10 এর সমান তা হল
19, 28, 37, 46, 55, 64, 73, 82, 91, ইত্যাদি..,
আপনি যদি সিরিজটি পর্যবেক্ষণ করেন, প্রতিটি সংখ্যা 9 দ্বারা বৃদ্ধি পায়। উপরের ক্রমটিতে এমন সংখ্যা রয়েছে যার অঙ্কের যোগফল 10 এর সমান নয় যখন 9 দ্বারা বৃদ্ধি পাবে। তবে, আপনি সেই সমস্ত সংখ্যা পাবেন যার অঙ্কের যোগফল 10 এর সমান।পি>
সুতরাং, আমাদের একটি লুপ থাকতে পারে যা 9 দ্বারা বৃদ্ধি পায় এবং অঙ্কের যোগফল পরীক্ষা করে এবং n-তম সংখ্যাটি খুঁজে পায়। আসুন কিছু উদাহরণ দেখি
ইনপুট
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