Trong bài toán này, chúng ta được cho hai số K và D. Nhiệm vụ là in ra một số có K chữ số và có gốc số (digital root) bằng D.
Gốc Số (Digital Root) là giá trị một chữ số thu được từ việc cộng đệ quy các chữ số của số cho đến khi còn một chữ số. Còn gọi là tổng chữ số.
Ví dụ để hiểu vấn đề:
Đầu vào: D = 5, K = 6 → Đầu ra: 500000
Để giải quyết, ta sử dụng cách thêm các số 0 sau số D. Số của ta sẽ là {D000..(K-1 lần)}. Đây là giải pháp đơn giản, thanh lịch và ít phức tạp.
Ví Dụ
Chương trình minh họa giải pháp:
#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 << " chữ số với gốc số = " << D << " là: ";
printKdigitNumber(K, D);
return 0;
}
Đầu Ra
6 chữ số với gốc số = 5 là: 500000