Pagini recente » Cod sursa (job #2209863) | Cod sursa (job #2857287) | Cod sursa (job #943482) | Cod sursa (job #1345715) | Cod sursa (job #1777601)
#include<bits/stdc++.h>
#define baza 10
using namespace std;
int v[1000005],d,v1[1000005],rest;
char s[1000005];
int restscalar(int a[],int n)
{
int t=0;
for (int i=a[0];i>=1;i--)
{
t=(t*baza+a[i])%n;
}
return t;
}
void adunare(int a[],int b[])
{
int t=0,i;
for(i=1;i<=a[0] ||i<=b[0] ||t;i++)
{
t=t+a[i]+b[i];
a[i]=t%baza;
t/=baza;
}
}
void conversie(int v[],int x)
{
int da=0;
while(x)
{
v[++da]=x%baza;
x/=baza;
}
v[0]=da;
}
void scrie(int x)
{
/* if(x<100000000000000)
{
printf("0%lld",x);
return;
}
if(x<10000000000000)
{
printf("00%lld",x);
return;
}
if(x<1000000000000)
{
printf("000%lld",x);
return;
}
if(x<100000000000)
{
printf("0000%lld",x);
return;
}
if(x<10000000000)
{
printf("00000%lld",x);
return;
}
if(x<1000000000)
{
printf("000000%lld",x);
return;
}
if(x<100000000)
{
printf("0000000%lld",x);
return;
}
if(x<10000000)
{
printf("00000000%lld",x);
return;
}
if(x<1000000)
{
printf("000000000%lld",x);
return;
}
if(x<100000)
{
printf("0000000000%lld",x);
return;
}
if(x<10000)
{
printf("00000000000%lld",x);
return;
}
if(x<1000)
{
printf("000000000000%lld",x);
return;
}
if(x<100)
{
printf("0000000000000%lld",x);
return;
}
if(x<10)
{
printf("00000000000000%lld",x);
return;
}*/
printf("%d",x);
}
void afisare(int v[])
{
int x=v[0];
//scrie(v[x]);
printf("%d",v[x]);
for(int i=x-1;i>=1;i--)
scrie(v[i]);
printf("\n");
}
int main()
{
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
scanf("%s",&s);
int x=strlen(s);
for(int i=0;i<x;i++)
{
v[i+1]=s[i]-'0';
}
reverse(v+1,v+x+1);
v[0]=x;
scanf("\n");
scanf("%d",&d);
rest=restscalar(v,d);
rest=d-rest;
conversie(v1,rest);
adunare(v,v1);
afisare(v);
return 0;
}