Pagini recente » Cod sursa (job #296193) | Cod sursa (job #1787823) | Cod sursa (job #1995907) | Cod sursa (job #2634059) | Cod sursa (job #38935)
Cod sursa(job #38935)
#include <stdio.h>
#include <string.h>
#define BASE 10
void add(int A[], int B)
{
int i, t = 0;
A[1] += B;
for (i = 1; i <= A[0] || t; ++i, t /= 10)
if(A[i] > BASE)
{
A[i+1] += A[i] / BASE;
A[i] %= BASE;
}
else
break;
if(A[0] < i - 1)
A[0] = i - 1;
}
int mod(int A[], int B)
{
int i, t = 0;
for (i = A[0]; i > 0; --i)
t = (t * BASE + A[i]) % B;
return t;
}
int a[1000002];
char buf[1000002];
int main()
{
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
fgets(buf,1000000,stdin);
int D,i;
scanf("%d", &D);
buf[strlen(buf)-1] = 0;
for(i=strlen(buf)-1;i>=0;--i)
a[++a[0]] = buf[i] - 48;
D -= mod(a,D);
add(a,D);
printf("%d", a[a[0]]);
for(i=a[0]-1;i>0;--i)
printf("%d", a[i]);
return 0;
}