Pagini recente » Cod sursa (job #1277342) | Cod sursa (job #1076589) | Cod sursa (job #696645) | Cod sursa (job #307744) | Cod sursa (job #227950)
Cod sursa(job #227950)
# include <stdio.h>
int a[500000],i,n,b[500000],c[500000],w,j,aux;
long long int x,z,y;
char q;
int nrcif (int x)
{
int k=0;
while (x)
{
k++;
x=x/10;
}
return k;
}
int main ()
{
freopen ("next.in","r",stdin);
freopen ("next.out","w",stdout);
i=0;
while (scanf ("%c",&q))
{
a[i]=q-48;
if (a[i]==-38)
break;
i++;
}
n=i;
scanf ("%lli",&x);
w=nrcif (x);
j=0;
j=j+w;
z=0;
for (i=0;i<j;i++)
y=y*10+a[i];
if (y<x)
{
y=y*10+a[j];
j++;
}
b[z]=y/x;
z++;
y=y%x;
while (j<n)
{
y=y*10+a[j];
j++;
b[z]=y/x;
z++;
y=y%x;
}
if (y==0)
{
for (i=0;i<n;i++)
printf ("%i",a[i]);
}
else
{
n=z;
i=n-1;
while (b[i]==9)
i--;
if (i==-1)
{
for (i=1;i<=n;i++)
b[i]=0;
n++;
b[0]=1;
}
else
{
b[i]++;
i++;
while (i<n)
{
b[i]=0;
i++;
}
}
for (i=0;i<n/2;i++)
{
aux=b[i];
b[i]=b[n-i-1];
b[n-i-1]=aux;
}
j=0;
while (x)
{
z=x%10;
x=x/10;
for (i=0;i<n+j;i++)
c[i+j]=c[i+j]+b[i]*z;
j++;
}
n=n+j-1;
y=0;
for (i=0;i<n;i++)
{
c[i]=c[i]+y;
y=c[i]/10;
c[i]=c[i]%10;
}
while (y)
{
c[n]=y%10;
n++;
y=y/10;
}
for (i=n-1;i>=0;i--)
printf ("%i",c[i]);
}
return 0;
}