Pagini recente » Cod sursa (job #1140362) | Cod sursa (job #2222264) | Cod sursa (job #2747229) | Cod sursa (job #1646634) | Cod sursa (job #1787374)
#include <iostream>
#include <fstream>
using namespace std;
const int MAXN = 1000000;
char N[MAXN + 1];
long long D, rest;
int lN;
void afisare(char A[], int lA)
{
ofstream g("next.out");
for(int i = lA; i >= 1; i--)
g << int (A[i]);
g.close();
}
void citire()
{
ifstream f("next.in");
char c;
lN = 0;
f.get(c);
while(c != '\n')
{
N[++lN] = c - '0';
f.get(c);
}
for(int i = lN, j = 1; i > j; i--, j++)
swap(N[i], N[j]);
f >> D;
f.close();
}
long long mod(char A[], int lA, long long B)
{
long long t = 0;
for(int i = lA; i >= 1; i--)
t = (t * 10 + A[i]) % B;
return t;
}
void add(char A[], int &lA, long long t)
{
int i;
for(i = 1; i <= lA || t; i++, t /= 10)
A[i] = (t += A[i]) % 10;
lA = i - 1;
}
int main()
{
citire();
rest = mod(N, lN, D);
if(rest > 0)
add(N, lN, D - rest);
afisare(N, lN);
return 0;
}