Pagini recente » Cod sursa (job #2442820) | Cod sursa (job #38943)
Cod sursa(job #38943)
#include <stdio.h>
#include <string.h>
#define BASE 10
typedef long long lint;
void add(lint A[], lint 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;
if(i+1 > A[0])
++A[0];
A[i] %= BASE;
}
else
break;
}
int mod(lint A[], lint B)
{
int i, t = 0;
for (i = A[0]; i > 0; --i)
t = (t * BASE + A[i]) % B;
return t;
}
lint a[1000002];
char buf[1000002];
int main()
{
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
fgets(buf,1000000,stdin);
lint D,i;
scanf("%lld", &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("%lld", a[a[0]]);
for(i=a[0]-1;i>0;--i)
printf("%lld", a[i]);
return 0;
}