Pagini recente » Cod sursa (job #463350) | Cod sursa (job #712552) | Cod sursa (job #1241098) | Cod sursa (job #1636080) | Cod sursa (job #472949)
Cod sursa(job #472949)
#include<stdio.h>
#include<string.h>
using namespace std;
#define dim 1000005
char v[dim];
long long D;
int n,DD,nr,NR,i,R,in,a,N;
short int A[dim],B[dim],ok;
int main()
{
FILE *f=fopen("next.in","r"), *g=fopen("next.out","w");
fscanf(f,"%s",v);
fscanf(f,"%lld",&D);
DD=D;
while(DD!=0)
{
nr++; DD/=10;
}
n=strlen(v);
N=n;
for(i=0;i<n;i++)
A[i+1]=v[i]-48;
memcpy(B,A,sizeof(B));
ok=1; if(n<nr) ok=0;
if(ok==0)
{ R=v[i]-48;
for(i=2;i<=nr;i++)
{R*=10; R+=v[i]-48;}
}
else
{in=1;
while(in<=N)
{
a+=A[in];
if(a>D)
a=a-D*(a/D);
in++;
a*=10;
}
R=a/10;
}
R=(D-R)%D;
NR=N;
while(R!=0)
{
B[NR]+=R%10;
R/=10;
if(B[NR]>9)
{
B[NR-1]+=B[NR]/10;
B[NR]%=10;
}
NR--;
}
if(B[0]!=0)
fprintf(g,"%d",B[0]);
for(i=1;i<=N;i++)
fprintf(g,"%d",B[i]);
fprintf(g,"\n");
fclose(f);
fclose(g);
return 0;
}