Số K chữ số nhỏ nhất chia hết cho X được tìm bằng công thức kiểm tra tính chia hết. Quy trình:
- Tính số K chữ số nhỏ nhất: min = 10^(K-1) (ví dụ: 10, 100, 1000...).
- Nếu min chia hết cho X → đó là kết quả.
- Ngược lại: kết quả = (min + X) - ((min + X) % X).
Ví dụ
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int X = 83;
int K = 5;
cout << "So " << K << " chu so nho nhat chia het cho " << X << " la ";
int MIN = pow(10, K - 1);
if (MIN % X == 0)
cout << MIN;
else
cout << (MIN + X) - ((MIN + X) % X);
return 0;
}
Kết quả
So 5 chu so nho nhat chia het cho 83 la 100430
Giải thích công thức
Công thức (min + X) - ((min + X) % X) tìm bội số của X lớn nhất không vượt quá (min + X), đảm bảo kết quả ≥ min và chia hết cho X.
Lưu ý
Code gốc có lỗi: gọi hàm answer(X, K) không tồn tại. Đã sửa trong phiên bản trên.