Pagini recente » Cod sursa (job #137043) | Cod sursa (job #1921390) | Cod sursa (job #2297654) | Cod sursa (job #251421) | Cod sursa (job #2108367)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstring>
using namespace std;
int a[1000005],b[1000005];
char s[1000005];
void adun (int a[], int b[])
{
int i,t=0;
for (i=1;i<=a[0] ||i<=b[0]||t;i++)
{
t+=a[i]+b[i];
a[i]=t%10;
t=t/10;
}
a[0]=i-1;
}
long long mod(int a[], long long b)
{
int i;
long long t=0;
for (i=a[0];i>0;i--)
t=(t*10+a[i])%b;
return t;
}
int main()
{
long long d,r;
int i;
ifstream f("next.in");
ofstream g("next.out");
f.getline(s,1000005);
for (i = 0; i <strlen(s); i++)
a[++a[0]]=s[i]-'0';
reverse (a + 1, a + a[0] + 1);
f>>d;
r=mod(a,d);
if (r>0)
r=d-r;
while (r != 0)
{
b[++b[0]] = r % 10;
r = r / 10;
};
adun (a,b);
for (i = a[0]; i >= 1; i--)
g << a[i];
f.close();
g.close();
return 0;
}