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; }