Pagini recente » Cod sursa (job #2072413) | Cod sursa (job #422052) | Cod sursa (job #2597053) | Cod sursa (job #2627853) | Cod sursa (job #66666)
Cod sursa(job #66666)
#include<stdio.h>
#include<string.h>
long long d, r, aux, lung;
int a[1000010], b[170];
void citire()
{
char s[1000010];
freopen("next.in","r",stdin);
scanf("%s",&s);
long long l;
l=strlen(s);
for (long long i=l-1; i>=0; i--)
a[l-i]=s[i]-'0';
lung=l;
a[0]=l;
scanf("%lld",&d);
}
long long mod(int A[], long long B)
{
long long i, t = 0;
for (i = lung; i > 0; i--)
t = (t * 10 + A[i]) % B;
return t;
}
void add(int lung, int A[], int B[])
{
long long i, t = 0;
for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
A[i] = (t += A[i] + B[i]) % 10;
lung = i - 1;
freopen("next.out","w",stdout);
for (i=lung; i>=1; i--)
printf("%d",a[i]);
}
void transform()
{
b[0]=0;
while (aux)
{
b[0]++ ;
b[b[0]]=aux%10;
aux/=10;
}
}
void afis()
{
freopen("next.out","w",stdout);
for (long long i=lung; i>=1; i--)
printf("%d",a[i]);
}
int main()
{
citire();
r=mod(a,d);
aux=(d-r)%d;
transform();
add(lung,a,b);
// afis();
return 0;
}