Pagini recente » Cod sursa (job #1911512) | Cod sursa (job #2487008) | Cod sursa (job #772023) | Cod sursa (job #2395664) | Cod sursa (job #610625)
Cod sursa(job #610625)
#include<fstream>
#include<iostream>
using namespace std;
int n,A[1000005];
long long D;
char s[1000005];
void Citire()
{
int i;
ifstream fin("next.in");
fin>>s;
fin>>D;
fin.close();
n=strlen(s);
for(i=1;i<=n;i++)
A[i]=s[i-1]-'0';
}
long long Rest()
{
int i;
long long r=0;
for(i=1;i<=n;i++)
r=(r*10+A[i])%D;
return r;
}
void Aduna(long long x)
{
int i,r=0,aduna;
for(i=n;i>0 && x;i--)
{
aduna=r+A[i]+x%10;
A[i]=aduna%10;
r=aduna/10;
x=x/10;
}
aduna=A[i]+r;
A[i]=aduna%10;
r=aduna/10;
if(r)
A[i-1]=r;
}
void Rezolvare()
{
long long rest;
rest=Rest();
if(rest)
{
rest=D-rest;
rest=rest%D;
Aduna(rest);
}
}
void Afisare()
{
ofstream fout("next.out");
int i;
if(A[0]) i=0;
else i=1;
for(;i<=n;i++)
fout<<A[i];
fout.close();
}
int main()
{
Citire();
Rezolvare();
Afisare();
return 0;
}