Pagini recente » Cod sursa (job #858519) | Cod sursa (job #383983) | Cod sursa (job #1830796) | Istoria paginii runda/herman | Cod sursa (job #464129)
Cod sursa(job #464129)
#include <cstdio>
#include <cstring>
#define file_in "next.in"
#define file_out "next.out"
int n;
long long r,d,x,aux;
char s[1012000];
int v[1012000];
void citire()
{
int i,st,dr;
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
gets(s);
n=strlen(s);
for (i=0;i<n;++i)
v[i+1]=s[i]-'0';
//inverseaza vectoru
st=1;
dr=n;
while(st<=dr)
{
aux=v[st];
v[st]=v[dr];
v[dr]=aux;
st++;
dr--;
}
scanf("%lld", &d);
}
long long mod(int a[], long long b)
{
long long i,t=0;
for (i=a[0];i>=1;--i)
t=(t*10+a[i])%b;
return t;
}
void add(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;
a[0]=i-1;
}
void solve()
{
int i;
v[0]=n;
r=mod(v,d);
//printf("%lld\n", r);
d=(d-r)%d;
//printf("%lld\n", x);
for(i=1;i<=v[0] || d;i++,d/=10)
v[i]=(d+=v[i])%10;
v[0]=i-1;
for(i=v[0];i>=1;i--)
printf("%d",v[i]);
}
int main()
{
citire();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}