Pagini recente » Borderou de evaluare (job #702904) | Cod sursa (job #1917244) | Cod sursa (job #2976618) | Cod sursa (job #2730845) | Cod sursa (job #992232)
Cod sursa(job #992232)
#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
#include <climits>
#include <algorithm>
#include <cmath>
using namespace std;
ifstream fin ("next.in");
ofstream fout("next.out");
#define baza 10
#define MAX 1000010
long long int i,k,kl,d;
unsigned int a[MAX];
void fshow(unsigned int *al)
{
for(i=al[0];i>=1;i--)
{
fout<<al[i];
}
}
void show(unsigned int *al)
{
for(i=al[0];i>=1;i--)
{
cout<<al[i];
}
}
long long int mod(unsigned int* al,long long int d)
{
long long int p=0;
for(i=al[0];i>=1;i--)
{
long long int xi=al[i]+p;
p=xi%d;
p*=baza;
}
p/=baza;
return p;
}
void add(unsigned int* cl, long long int dx)
{
i=0;
while(dx)
{
a[++i]+=dx%10;
dx/=10;
}
for(kl=1;kl<=cl[0];kl++)
{
cl[kl+1]+=(cl[kl]/baza);
cl[kl]%=baza;
}
while(cl[cl[0]+1])
cl[0]++;
}
void citire()
{
char n;
fin.get(n);
i=0;
while(n!='\n'){
a[++i]=n-'0';
fin.get(n);
}
a[0]=i;
for(i=1;i<=a[0]/2;i++)
{
swap(a[i],a[a[0]+1-i]);
}
fin>>d;
}
int main()
{
citire();
long long int p=mod(a,d);
if(p)
{
add(a,d-p);
}
fshow(a);
return 0;
}