Pagini recente » Cod sursa (job #3177957) | Cod sursa (job #1432066) | Cod sursa (job #1649850) | Cod sursa (job #2735805) | Cod sursa (job #1687837)
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int a[1000005];
void printh(int x[])
{
for(int i = x[0]; i >= 1; i--)
printf("%d",x[i]);
printf("\n");
}
long long resthugeint(long long k)
{
long long r;
int i;
r = 0;
for(i = a[0];i >= 1;i--)
{
r = 10 * r + a[i];
r = r % k;
}
return r;
}
void adunh(int a[],int b[])
{
int i,tr,aux,l;
tr = 0;
l = max(a[0],b[0]);
for(i = 1;i <= l;i++)
{
aux = a[i] + b[i] + tr;
a[i] = aux % 10;
tr = aux / 10;
}
while(tr)
{
a[++a[0]] = tr % 10;
tr /= 10;
}
}
void ini(long long c)
{
int b[20];
memset(b,0,sizeof(b));
do
{
b[++b[0]] = c % 10;
c /= 10;
}while(c);
adunh(a,b);
}
int main()
{
freopen("next.in", "r",stdin);
freopen("next.out", "w",stdout);
long long d,r,c;
int i;
char ch;
a[0] = 0;
scanf("%c", &ch);
while(ch != '\n' && ch != ' ')
{
a[++a[0]] = ch - 48;
scanf("%c", &ch);
}
for(i = 1;i <= a[0] / 2;i++)
swap(a[i],a[a[0] - i + 1]);
scanf("%I64d", &d);
r = resthugeint(d);
c = d - r;
if(c != d)
ini(c);
printh(a);
return 0;
}