Pagini recente » Cod sursa (job #1953634) | Cod sursa (job #328449) | Cod sursa (job #3176808) | Cod sursa (job #3285463) | Cod sursa (job #43609)
Cod sursa(job #43609)
#include <fstream>
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[1000002];
int b[100];
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
char s[1000002];
long long d;
int i;
fin.getline(s, 1000003);
int n = strlen(s);
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;
}