Cho trước a, b và n. Và chúng ta phải xem xét các điều kiện sau và tìm giải pháp tối ưu để thêm n chữ số vào a sao cho nó chia hết cho b sau mỗi lần lặp.
-
Thêm một chữ số vào a trong a như vậy theo cách mà sau khi thêm nó, a chia hết cho b .
-
In giá trị nhỏ nhất của a có thể sau n lần lặp lại của bước 1.
-
In không thành công nếu hoạt động không thành công.
kiểm tra tính chia hết sau mỗi phép cộng chữ số.
Đầu vào
a=5 b=4 n=4
Đầu ra
52000
Giải thích
Chữ số đầu tiên được thêm từ 0 đến 9 , nếu không có chữ số nào tạo thành a chia hết cho b thì câu trả lời là -1 có nghĩa là nếu n các chữ số được thêm vào a . a không bao giờ chia hết cho b . nếu không, hãy thêm chữ số đầu tiên thỏa mãn điều kiện rồi thêm 0 sau đó (n-1) lần vì nếu a chia hết cho b sau đó đến a * 10, a * 100, … Cũng sẽ chia hết cho b .
Ví dụ
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 4, n = 4;
int num = a;
for (int i = 0; i <= 9; i++) {
int temp = a * 10 + i;
if (temp % b == 0) {
a = temp;
break;
}
}
if (num == a) {
a = -1;
}
for (int j = 0; j < n - 1; j++) {
a *= 10;
}
if(a>-1) {
cout <<a;
} else {
cout <<”fail”;
}
return 0;
}