Pagini recente » Cod sursa (job #1006020) | Cod sursa (job #1505679) | Cod sursa (job #1762377) | Cod sursa (job #2196844) | Cod sursa (job #1747733)
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int max_digits=1000005;
const int base=10;
char s[max_digits];
class HugeN
{
private:
int x[max_digits];
public:
HugeN()
{
x[0]=1;
memset(x,0,sizeof(x));
}
HugeN (char *s)
{
x[0]=strlen(s);
for(int i=1;i<=x[0];++i)
x[i]=s[x[0]-i]-'0';
}
void print()
{
for(int i=x[0];i>=1;--i )
printf("%d",x[i]);
printf("\n");
}
HugeN operator+(long long k);
long long operator %(long long k);
};
HugeN HugeN::operator +(long long k)
{
int i;
long long aux,tran;
tran=k;
for (i=1;i<=x[0];++i)
{
aux=x[i]+tran;
x[i]=aux%10;
tran=aux/10;
}
while (tran)
{
x[++x[0]]=tran%10;
tran/=10;
}
return *this;
}
long long HugeN::operator %(long long k)
{
int i,r;
r=0;
for(i=x[0];i>=1;--i)
r=(r*10+x[i])%k;
return r;
}
int main()
{
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
long long d,r;
scanf("%s",&s);
scanf("%lld",&d);
HugeN n(s);
r=n%d;
if (r==0)
n.print();
else
{
n=n+(d-r);
n.print();
}
return 0;
}