Pagini recente » Cod sursa (job #1433067) | Cod sursa (job #2128764) | Cod sursa (job #2302698) | Cod sursa (job #2137813) | Cod sursa (job #2187375)
#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;
tr=0;
for(i=1;i<=a[0];++i)
{
a[i]=(a[i]+b[i]+tr)%10;
tr=(a[i]+b[i]+tr)/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("%lld",&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;
}