Pagini recente » Cod sursa (job #1691563) | Cod sursa (job #858439) | Cod sursa (job #1089218) | Cod sursa (job #1933550) | Cod sursa (job #1748273)
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int NMAXDIGITS= 1000005;
char s[1000005];
class HugeN
{
private :
int x[NMAXDIGITS];
public:
HugeN();
HugeN(char*s)
{
int l =strlen(s);
memset(x,0,sizeof(x));
int i;
x[0]=l;
for(i = l - 1 ; i >= 0;i--)
{
x[l-i]=s[i]-48;
}
}
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()
{
memset(x,0,sizeof(x));
x[0]=1;
}
HugeN& HugeN::operator+=( long long k)
{
int i ;
long long tr = k , aux;
for(i = 1 ;i <= x[0] ; i++)
{
aux=x[i]+ tr;
x[i]=aux%10;;
tr=aux/10;
}
while(tr)
{
x[0]++;
x[x[0]]=tr%10;
tr=tr/10;
}
return*this;
}
long long HugeN ::operator%( long long k)
{
long long aux=0;
int i;
for(i = x[0]; i >= 1 ; i--)
{
aux=(aux*10+x[i]);
aux=aux%k;
}
return aux;
}
int main()
{
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
gets(s);
long long k;
scanf("%lld",&k);
HugeN N(s);
long long r,b;
r=N%k;
b=k-r;
if(r)N+=b;
N.print();
return 0;
}
/// tema + si -;