Pagini recente » Cod sursa (job #146082) | Cod sursa (job #1662336) | Cod sursa (job #69914) | Cod sursa (job #3224345) | Cod sursa (job #38420)
Cod sursa(job #38420)
#include <stdio.h>
#include <string>
using namespace std;
#define in "next.in"
#define out "next.out"
#define dim 1000001
int size, nr[51];
int A[dim];
long long d;
char c[dim];
int main()
{
FILE *fin = fopen(in,"r");
freopen(out,"w",stdout);
fgets(c,dim,fin);
fscanf(fin,"%lld", &d);
size = strlen(c)-2;
int i;
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;
t = d-t;
int i;
while ( t ) { nr[0]++, nr[nr[0]] = t % 10, t /= 10; };
t = 0;
for (i=1; i<=A[0] || i<=nr[0] || t; i++, t/=10)
A[i] = (t += A[i] + nr[i]) % 10;
A[0] = i - 1;
for ( int i = A[0]; i >= 1; i-- )
printf("%d", A[i]);
}
}