इस समस्या में, हमें दो संख्याएं K और D दी गई हैं। हमारा कार्य K डिजिट की एक संख्या प्रिंट करना है जिसका डिजिटल रूट D के बराबर हो।
डिजिटल रूट
डिजिटल रूट एक सिंगल-डिजिट मान है जो संख्या के अंकों के रिकर्सिव जोड़ का परिणाम होता है जब तक कि एक सिंगल-डिजिट संख्या न पहुंच जाए। इसे डिजिटल सम भी कहा जाता है।
उदाहरण
Input: D = 5, K = 6 Output: 500000
इस समस्या को हल करने के लिए, हम संख्या D के बाद शून्यों का उपयोग करेंगे। हमारी संख्या होगी {D000..(k-1 बार)}। यह हमारी समस्या का एक सरल और सुंदर समाधान है जो कम जटिल भी है।
उदाहरण
हमारे समाधान के कार्यान्वयन को दिखाने वाला प्रोग्राम:
#include <bits/stdc++.h>
using namespace std;
void printKdigitNumber(int k, int d) {
if (d == 0 && k != 1)
cout << "-1";
else {
cout << d;
k--;
while (k--)
cout << "0";
}
}
int main() {
int K = 6, D = 5;
cout << K << " digit number with digital Root = " << D << " is : ";
printKdigitNumber(K, D);
return 0;
}
आउटपुट
6 digit number with digital Root = 5 is : 500000