Pagini recente » Cod sursa (job #2837490) | Cod sursa (job #719525) | Cod sursa (job #2414584) | Cod sursa (job #448185) | Cod sursa (job #38489)
Cod sursa(job #38489)
#include <stdio.h>
#include <string>
using namespace std;
#define in "next.in"
#define out "next.out"
#define dim 1000002
int size, nr[440];
int A[dim];
unsigned long long d=0, t=0;
char c[dim];
char d2[26];
int main()
{
int k;
char ch;
size=0;
k = 0;
d=0;
FILE *fin = fopen(in,"r");
freopen(out,"w",stdout);
fgets(c,dim-1,fin);
fgets(d2,27,fin);
for ( int j = 0; j <= strlen(d2); j++ )
{
if ( d2[j] >= '0' && d2[j] <= '9' )
{
d *= 10, d += (int)d2[j]-48;
}
}
// printf("%llu",d);
while ( c[size] >= '0' && c[size] <= '9' ) size++;
int i;
size -= 1;
for (i = 0; i <= size; i++ )
A[size-i+1] = (int)c[i]-48;
A[0] = size+1;
long long t = 0;
for ( i = A[0]; i >= 1; i-- )
{
t = (t * 10 + A[i] ) % d;
}
if ( t == 0 )
{
for ( i = A[0]; i >= 1; i-- )
printf("%d",A[i]);
}
else
{
nr[0] = 0;
long long v = d-t;
while ( v ) { nr[0]++, nr[nr[0]] = v % 10, v /= 10; };
long long q = 0;
for ( i = 1; i <= A[0] || i <= nr[0] || q; i++, q/=10 )
A[i] = (q += A[i] + nr[i]) % 10;
A[0] = i - 1;
for ( i = A[0]; i >= 1; i-- )
printf("%d", A[i]);
}
}