Pagini recente » Cod sursa (job #3243847) | Cod sursa (job #1852057) | Cod sursa (job #291439) | Cod sursa (job #277853) | Cod sursa (job #41171)
Cod sursa(job #41171)
#include<stdio.h>
#include<string.h>
const int maxn = 1000022;
const int maxn2 = 30;
typedef short lnum[maxn];
typedef short lnum2[maxn2];
void ad(lnum &dest,lnum &a, lnum2 &b)
{
short i;
short t = 0;
short y = 0;
for(i = 1;i <= a[0] || i <= b[0] || t;++i)
{
if (i < 30) y = b[i];
else
{
y = 0;
}
t += a[i] + y;
dest[i] = t % 10;
t /= 10;
}
while(dest[dest[0] + 1])dest[0]++;
}
char a1[maxn];
long long i;
long long n;
long long nr;
lnum2 b;
lnum a;
int main()
{
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
fgets(a1 + 1,1000020,stdin);
n = strlen(a1 + 1) - 1;
for(i = 1;i <= n; ++i)
{
a[n- i + 1] = a1[i] - '0';
}
a[0] = n;
scanf("%lld",&n);
for(i = a[0];i > 0; --i)
{
nr *= 10;
nr += a[i];
nr %= n;
}
nr = n - nr;
nr %= n;
while(nr)
{
b[0]++;
b[b[0]] = nr % 10;
nr /= 10;
}
ad(a,a,b);
for(i = a[0];i > 0; --i)
{
printf("%hd",a[i]);
}
printf("\n");
return 0;
}