Pagini recente » Cod sursa (job #1628316) | Cod sursa (job #1894973) | Cod sursa (job #2330048) | Cod sursa (job #2606509) | Cod sursa (job #464128)
Cod sursa(job #464128)
#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];
int v1[102];
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);
int nr=0;
while(d)
{
v1[++v1[0]]=d%10;
d/=10;
}
//v1[0]=nr;
add(v,v1);
for (i=v[0];i>=1;--i)
printf("%d", v[i]);
}
int main()
{
citire();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}