Pagini recente » Cod sursa (job #3149080) | Cod sursa (job #2872949) | Cod sursa (job #700547) | Cod sursa (job #1619234) | Cod sursa (job #1236801)
#include<stdio.h>
#include<string.h>
#define LMAX 1000010 // ATENTIE!!!!!!!
#define BASE 10
class HUGE
{
int x[LMAX];
public:
HUGE(char c[])
{
x[0]=strlen(c);
for(int i=x[0]; i; --i)
x[i]=c[x[0]-i]-'0';
}
long long operator %(long long d)
{
long long r=0;
for(int i=x[0]; i; --i)
{
r=r*10ll+(long long)x[i];
r%=d;
}
return r;
}
HUGE& operator +=(long long d)
{
int i=1, r;
while(d)
{
r+=d%10+x[i];
x[i]=r%10;
r/=10;
d/=10;
++i;
}
while(r)
{
r+=x[i];
x[i]=r%10;
r/=10;
++i;
}
if(i-1>x[0])
x[0]=i-1;
return *this;
}
void print()
{
for(int i=x[0]; i; --i)
printf("%d", x[i]);
}
};
char aux[LMAX];
int main()
{
freopen("next.in", "r", stdin);
freopen("next.out", "w", stdout);
long long d, r;
scanf("%s%I64d", aux, &d);
HUGE n(aux);
r=n%d;
if(r)
n+=(d-r);
n.print();
return 0;
}