#include <stdio.h>
#include <string.h>
char a[1011], b[1011], r[1011];
int al, bl, rl;
int main (void) {
int A, R, i, j, k;
scanf ("%s %s", a, b);
al = strlen (a);
bl = strlen (b);
A = k = 0;
while (a[A] == '0') A++;
while (k <= al - bl) {
if (A < k || strncmp (a + k, b, bl) >= 0) {
r[rl]++;
for (i = 0; i < bl; i++) a[k + i] -= b[i];
for (i = 0; i < bl; i++) a[k + i] += '0';
for (i = k + bl - 1; i > A; i--) {
if (a[i] < '0') {
a[i] += 10;
a[i - 1]--;
}
}
while (a[A] == '0') A++;
}
else { r[rl++] += '0'; k++; }
}
for (R = 0; r[R] == '0'; R++);
if (a[A] == 0) A--;
if (*r == 0) *r = '0';
puts (&r[R]);
puts (&a[A]);
return 0;
}
bigint 나눗셈 구현
난 피똥싸며 어거지로 맞췄는데
위에 깔끔한 코드 보니 기가 맥히네... 진작 백준 풀면서 공부할걸
댓글 0