Pagini recente » Cod sursa (job #1983698) | Cod sursa (job #1210583) | Cod sursa (job #495521) | Cod sursa (job #587970) | Cod sursa (job #1748327)
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int NMAXDIGITS = 1005;
char s[1000005];
class HugeN {
private:
int x[NMAXDIGITS];
public:
HugeN() {
memset ( x, 0, sizeof ( x ));
x[0] = 1;
}
HugeN ( char *s ) {
int l = strlen ( s );
memset ( x, 0, sizeof ( x ) );
x[0] = l;
for ( int i = l - 1; i >= 0; i-- ) x[l - i] = s[i] - 48;
}
long long operator % ( long long k );
HugeN operator+= ( long long k );
void print() {
for ( int i = x[0]; i >= 1 ; --i ) printf ("%d", x[i] );
printf ("\n");
}
};//sf clasa;
long long HugeN:: operator % ( long long k ) {
long long r = 0;
for ( int i = x[0]; i >= 1; --i ) {
r = r * 10 + x[i];
r = r % k;
}
return r;
}
HugeN HugeN::operator+= ( long long k ) {
long long tr = k, aux;
for ( int 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;
}
int main() {
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
long long d,r;
gets ( s );
scanf ("%I64d", &d );
HugeN N ( s );
r = N % d;
//printf("%s\n",s);
if ( r ) N += d - r;
N.print();
return 0;
}