এখানে আমরা একটি সমস্যা দেখব, যেখানে একটি সংখ্যা n দেওয়া থাকলে, আমাদের একটি অন্য মান x খুঁজে বের করতে হবে, যাতে x এবং x-এর অঙ্কের যোগফলের সমষ্টি n-এর সমান হয়। উদাহরণস্বরূপ, n = 21 হলে, প্রোগ্রামটি x = ১৫ রিটার্ন করবে, কারণ ১৫ + (১ + ৫) = ২১ = n।
সমাধানের পদ্ধতি
এই সমস্যাটি সমাধান করতে আমরা একটি সাধারণ পদ্ধতি অনুসরণ করব। ১ থেকে n পর্যন্ত ইটারেট করব। প্রতিটি ইটারেশনে দেখব যে, বর্তমান সংখ্যা এবং তার অঙ্কের যোগফলের সমষ্টি n-এর সমান কিনা। যদি সমান হয়, তবে সেই সংখ্যাটি রিটার্ন করব, অন্যথায় চালিয়ে যাব।
উদাহরণ কোড
#include <iostream>
using namespace std;
int getDigitSum(int n) {
int sum = 0;
while (n) {
sum += n % 10;
n /= 10;
}
return sum;
}
int getNumber(int n) {
for (int i = 0; i <= n; i++)
if (i + getDigitSum(i) == n)
return i;
return -1;
}
int main() {
int n = 21;
cout << "The value of x is: " << getNumber(n);
return 0;
}
আউটপুট
The value of x is: 15