Pagini recente » Cod sursa (job #223530) | Cod sursa (job #2449445) | Cod sursa (job #2897072) | Cod sursa (job #2026073) | Cod sursa (job #123346)
Cod sursa(job #123346)
#include <stdio.h>
#include <math.h>
#include <string.h>
#define MAX_LEN 1000010
long long dv, rest, len, i, sum;
long v_sum[MAX_LEN], a[64];
char n[MAX_LEN];
long rest_fun() {
long ipr = 0;
for (ipr = v_sum[0]; ipr >= 1; --ipr) {
rest = rest * 10 + v_sum[ipr];
if (rest > dv) {
rest = rest % dv;
}
}
return 0;
}
long afis_sum() {
long ipr = 0, t = 0, aux = 0;
for (ipr = 1; ipr <= v_sum[0] || ipr <= a[0] || t; ++ipr) {
aux = v_sum[ipr] + a[ipr] + t;
v_sum[ipr] = aux % 10;
t = aux / 10;
}
v_sum[0] = ipr - 1;
for (ipr = v_sum[0]; ipr >= 1; --ipr) {
printf("%d", v_sum[ipr]);
}
return 0;
}
void show() {
long ipr = 0;
for (ipr = v_sum[0]; ipr >= 1; --ipr) {
printf("%ld", v_sum[ipr]);
}
}
int main() {
freopen("next.in", "r", stdin);
freopen("next.out", "w", stdout);
fgets(n, MAX_LEN, stdin);
len = strlen(n) - 1;
for (i = len - 1; i >= 0; --i) {
v_sum[++v_sum[0]] = (long)(n[i] - '0');
}
scanf("%lld", &dv);
rest_fun();
if (rest == 0) {
show();
printf("\n");
return 0;
}
sum = dv - rest;
while (sum != 0) {
a[++a[0]] = sum % 10;
sum /= 10;
}
afis_sum();
printf("\n");
return 0;
}