Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

각 덧셈 후에 B로 나눌 수 있도록 A에 N 자리를 더하시겠습니까?

<시간/>

주어진 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;
}