Pagini recente » Cod sursa (job #413) | Cod sursa (job #3276404) | Istoria paginii utilizator/etohirse | Cod sursa (job #2982373) | Cod sursa (job #47582)
Cod sursa(job #47582)
#include <fstream>
#include <string>
using namespace std;
long long Mod(int A[], long long B)
{
long long i, t = 0;
for (i = A[0]; i > 0; i--)
t = (t * 10 + A[i]) % B;
return t;
}
int main()
{
ifstream fin("next.in");
ofstream fout("next.out");
int a[10002];
int b[100];
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
string s;
long long d;
int i;
getline(fin, s);
int n = s.length();
fin >> d;
a[0] = n;
for (i = 1; i <= n; i++)
a[n-i+1] = s[i-1] - '0';
long long r = Mod(a, d);
long long x = (d - r) % d;
int m = 0;
while (x)
{
m++;
b[m] = x % 10;
x /= 10;
}
b[0] = m;
int j, t = 0;
for (j = 1; j <= a[0] || j <= b[0] || t; j++, t /= 10)
a[j] = (t += a[j] + b[j]) % 10;
a[0] = j - 1;
for (i = a[0]; i >= 1; i--)
fout << a[i];
fout.close();
fin.close();
return 0;
}