Pagini recente » Cod sursa (job #294600) | Cod sursa (job #218983) | Cod sursa (job #1521597) | Cod sursa (job #682222) | Cod sursa (job #123087)
Cod sursa(job #123087)
#include <stdio.h>
#include <math.h>
#include <string.h>
long long dv, rest, v[100001], len, i, sum, a[100001], v_sum[100001];
char n[1000010];
long rest_fun() {
long ipr = 0;
for (ipr = 1; ipr <= v[0]; ++ipr) {
rest = rest * 10 + v[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]; ++ipr) {
aux = v_sum[ipr] + a[ipr] + t;
v_sum[ipr] = aux % 10;
t = aux / 10;
}
if (t != 0) {
v_sum[++v_sum[0]] = t;
t = 0;
}
for (ipr = v_sum[0]; ipr >= 1; --ipr) {
printf("%ld", v_sum[ipr]);
}
return 0;
}
int main() {
freopen("next.in", "r", stdin);
freopen("next.out", "w", stdout);
scanf("%s", n);
len = strlen(n);
for (i = 0; i < len; ++i) {
v[++v[0]] = (long)(n[i] - '0');
}
for (i = v[0]; i >= 1; --i) {
v_sum[++v_sum[0]] = v[i];
}
scanf("%lld", &dv);
rest_fun();
sum = dv - rest;
while (sum != 0) {
a[++a[0]] = sum % 10;
sum /= 10;
}
afis_sum();
printf("\n");
return 0;
}