주어진 a, b 및 n. 그리고 우리는 다음 조건을 고려하고 모든 반복 후에 b로 나누어 떨어지도록 n자리를 더하는 최적의 솔루션을 찾아야 합니다.
-
a 에 숫자 추가 그러한 a 에서 추가한 후 b로 나눌 수 있습니다. .
-
의 가장 작은 값을 인쇄합니다. 1단계의 n번 반복 후에 가능합니다.
-
인쇄 실패 작업이 실패하면
모든 자릿수 덧셈 후 나눗셈을 확인합니다.
입력
a=5 b=4 n=4
출력
52000
설명
0 에서 추가할 첫 번째 숫자 9까지 , a 를 만드는 숫자가 없는 경우 b 로 나눌 수 있음 답은 -1입니다. 이는 if n 을 의미합니다. a에 숫자가 추가됩니다. . b 로 나누지 않음 . 그렇지 않으면 조건을 충족하는 첫 번째 숫자를 추가한 다음 0 을 추가합니다. 그 후 (n-1) a b 로 나눌 수 있습니다. 다음 a*10, a*100, ... b로도 나눌 수 있습니다. .
예시
#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; }