Pagini recente » Cod sursa (job #344542) | Cod sursa (job #385164) | Cod sursa (job #2295379) | Cod sursa (job #2430939) | Cod sursa (job #2148762)
#include <cstdio>
const int MAXN = 1e6;
char s[MAXN + 1];
int a[MAXN + 1];
void add(int *a, long long b) {
int i = 1;
while (b > 0) {
b += a[i];
a[i] = b % 10;
b /= 10;
++i;
}
if (a[0] < i - 1) {
a[0] = i - 1;
}
}
long long mod(int *a, long long b) {
int i = a[0];
long long t = 0;
while (i > 0) {
t = (10 * t + a[i]) % b;
--i;
}
return t;
}
int main() {
FILE *fin, *fout;
int n;
long long d, r;
char c;
fin = fopen("next.in", "r");
n = 0;
c = fgetc(fin);
while (c != '\n') {
s[++n] = c;
c = fgetc(fin);
}
fscanf(fin, "%lld", &d);
fclose(fin);
for (int i = n; i > 0; --i) {
a[++a[0]] = s[i] - '0';
}
r = mod(a, d);
if (r) {
d -= r;
add(a, d);
}
fout = fopen("next.out", "w");
for (int i = a[0]; i > 0; --i) {
fprintf(fout, "%d", a[i]);
}
fclose(fout);
return 0;
}