Pagini recente » Cod sursa (job #2816947) | Cod sursa (job #383960) | Cod sursa (job #2135704) | Cod sursa (job #2377476) | Cod sursa (job #527585)
Cod sursa(job #527585)
# include <fstream>
using namespace std;
std :: ifstream f ("next.in");
std :: ofstream g ("next.out");
char c;
short a[1000010];
int l;
long long nn;
long long D;
inline bool cifra (char c){
if (c >= '0' && c <= '9') return true;
return false;
}
int mod (short A[], short B){
int i, t = 0;
for (i = l; i > 0; i--)
t = (t * 10 + A[i]) % B;
return t;
}
void suma (short A[], short 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;
l = i - 1;
}
short x[30];
int main (){
while (cifra (c = f.get ())){
a[++l] = c - '0';
}
for (int i = 1, lim = (l >> 1); i <= lim; ++i){
int x = a[i];
a[i] = a[l - i + 1];
a[l - i + 1] = x;
}
f >> D;
nn = mod (a, D);
nn = D - nn;
while (nn){
x[++x[0]] = nn % 10;
nn = nn / 10;
}
suma (a, x);
for (int i = l; i > 0; --i)
g << a[i];
g.close ();
return 0;
}