ภาพรวมปัญหา
ได้รับ K (จำนวนหลัก) และ D (Digital Root) ต้องพิมพ์ตัวเลข K หลักที่มี Digital Root เท่ากับ D
Digital Root คืออะไร?
ค่าหนึ่งหลักที่ได้จากการบวกเลขหลักของตัวเลขซ้ำๆ จนเหลือหลักเดียว เรียกอีกอย่างว่า Digital Sum
ตัวอย่าง
Input: D = 5, K = 6 Output: 500000
วิธีแก้ปัญหา
ตัวเลขที่ต้องการคือ D ตามด้วยศูนย์ K-1 ตัว เช่น D=5, K=6 → 500000
กรณีพิเศษ: ถ้า D=0 และ K≠1 → ไม่มีคำตอบ (พิมพ์ -1)
ตัวอย่างโค้ด C++
#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;
}
ผลลัพธ์ (Output)
6 digit number with digital Root = 5 is: 500000