इस ट्यूटोरियल में, हम एक ऐसा नंबर ढूंढने जा रहे हैं जिसके अंकों के साथ योग दिए गए नंबर N के बराबर हो।
विचार सरल है, हम दिए गए नंबर के बाएं और दाएं 100 नंबरों की जांच करने जा रहे हैं। यह उस सीमा से बाहर नहीं होगा क्योंकि N ≤ 1000000000 और योग 100 से अधिक नहीं होगा।
आइए प्रॉब्लम को हल करने के चरण देखें।
संख्या को इनिशियलाइज़ करें।
एक लूप लिखें जो 100 बार पुनरावृति करता है।
n - i और n + i के मान प्राप्त करें।
अंकों का योग ढूंढें और उन्हें जोड़ें।
यदि उनमें से कोई N के बराबर है, तो उन्हें प्रिंट करें।
उदाहरण
आइए कोड देखें।
#include <bits/stdc++.h>
using namespace std;
int digitsSum(int n) {
int sum = 0;
while (n) {
sum += n % 10;
n /= 10;
}
return sum;
}
void findX(long int n) {
bool is_found = false;
for (int i = 0; i <= 100; i++) {
long int valueOnLeft = abs(n - i) + digitsSum(abs(n - i));
long int valueOnRight = n + i + digitsSum(n + i);
if (valueOnLeft == n) {
is_found = true;
cout << abs(n - i) << " ";
}
if (valueOnRight == n) {
is_found = true;
cout << (n + i) << " ";
}
}
if (!is_found) {
cout << "No numbers found";
}
cout << endl;
}
int main() {
int n = 89;
findX(n);
return 0;
}
आउटपुट
यदि आप उपरोक्त प्रोग्राम को निष्पादित करते हैं, तो आपको निम्न परिणाम मिलेगा।
76
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उन्हें टिप्पणी अनुभाग में उल्लेख करें।