Pagini recente » Cod sursa (job #2334079) | Cod sursa (job #1340344) | Rating Rafiliu Cristian (rafiliu_cristian) | Cod sursa (job #731008) | Cod sursa (job #760079)
Cod sursa(job #760079)
#include<stdio.h>
#include<string.h>
void prod(int H[],long long X)
{
int i;
unsigned long T=0;
for (i=1;i<=H[0];i++)
{
H[i]=H[i]*X+T;
T=H[i]/10;
H[i]=H[i]%10;
}
while (T)
{
H[++H[0]]=T%10;
T/=10;
}
}
void div(int A[],long long X)
{
int i;
long long R=0;
for (i=A[0];i;i--)
{
A[i]=(R=10*R+A[i])/X;
R%=X;
}
while (!A[A[0]] && A[0]>1)
A[0]--;
}
void adun(int A[],int B[])
{
int i,T=0;
if (B[0]>A[0])
{
for (i=A[0]+1;i<=B[0];)
A[i++]=0;
A[0]=B[0];
}
else
for (i=B[0]+1;i<=A[0];)
B[i++]=0;
for (i=1;i<=A[0];i++)
{
A[i]+=B[i]+T;
T=A[i]/10;
A[i]%=10;
}
if (T)
A[++A[0]]=T;
}
short a[1000000],b[5];
char c[1000000];
int main()
{
long long d;
long i;
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
gets(c);
a[0]=strlen(c);
d=-1;
for (i=a[0];i>=1;i--)
a[i]=c[++d]-48;
scanf("%lld",&d);
div(a,d);
b[0]=b[1]=1;
adun(a,b);
prod(a,d);
for (i=a[0];i>=1;i--)
printf("%d",a[i]);
}