Pagini recente » Cod sursa (job #2980718) | Cod sursa (job #2423416) | Cod sursa (job #3132821) | Cod sursa (job #44929) | Cod sursa (job #2187405)
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
const int NMAX=1000000;
int c[NMAX+5],n[NMAX+5];
void constr(long long n,int a[NMAX+5])
{
memset(a,0,sizeof(a));
do
{
a[++a[0]]=n%10;
n/=10;
}while(n);
}
long long imp_hn_longlong(int a[],long long b)
{
long long r;
int i;
r=0;
for(i=a[0];i>=1;--i)
{
r=r*10+a[i];
r=r%b;
}
return r;
}
void adun_hn_hn(int a[],int b[])
{
int tr,i,aux;;
tr=0;
for(i=1;i<=a[0];++i)
{
aux=(a[i]+b[i]+tr);
a[i]=aux%10;
tr=aux/10;
}
if(tr)
a[++a[0]]=1;
}
void print(int c[])
{
int i;
for(i=c[0];i>=1;--i)
printf("%d",c[i]);
}
int main()
{
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
long long d,r,nr;
char ch;
while(scanf("%c",&ch)&&ch!='\n')
n[++n[0]]=ch-48;
reverse(n+1,n+n[0]+1);
scanf("%I64d",&d);
r=imp_hn_longlong(n,d);
if(!r)
print(n);
else
{
nr=d-r;
memset(c,0,sizeof(c));
constr(nr,c);
adun_hn_hn(n,c);
print(n);
printf("\n");
}
return 0;
}