Pagini recente » Cod sursa (job #1633047) | Cod sursa (job #692818) | Cod sursa (job #239772) | Cod sursa (job #369778) | Cod sursa (job #1786354)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream f ("next.in");
ofstream g ("next.out");
const int MAXN = 1000000;
const int MAXD = 20;
char c[MAXN + 2], N[MAXN + 2], c2[MAXD], D2[MAXD + 2];
long long D;
void afisare (char A[])
{
for (int i = A[0]; i >= 1; i--)
g << int (A[i]);
g<<'\n';
}
void citire()
{
f >> c;
int lN = strlen (c);
for (int i = lN - 1; i >= 0; i--)
N[lN - i] = c[i] - '0';
N[0] = lN;
f >> D;
//afisare (N);
}
long long mod (char A[], long long B)
{
long long i, t = 0;
for (i = A[0]; i >= 1; i--)
t = (t * 10 + A[i]) % B;
return t;
}
void add (char A[], char B[])
{
int i, t = 0;
for (i = 1; i <= A[0] || i <= B[0] || t; i++, t /= 10)
A[i] = (t += A[i] + B[i]) % 10;
A[0] = i - 1;
afisare (A);
}
int main()
{
citire();
long long rest = mod (N, D);
rest = D - rest;
if (rest == D) rest = 0;
int lR = 0;
while (rest > 0)
{
D2[++lR] = rest % 10;
rest /= 10;
}
D2[0] = lR;
add (N, D2);
return 0;
}