Pagini recente » Cod sursa (job #964056) | Istoria paginii runda/cei_mai_mari_olimpicari_runda_0 | Cod sursa (job #1588940) | Cod sursa (job #2018464) | Cod sursa (job #363476)
Cod sursa(job #363476)
#include <stdio.h>
#include <string.h>
#define N 1<<10
char v[N],b[N];
int p,q,A[N],B[N];
void add(int A[], int B[])
{
int i, t = 0;
for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
A[i] = (t += A[i] + B[i]) % 10;
A[0] = i - 1;
}
void inversare1()
{
int i,t;
for (i=1; i<=A[0]/2; i++)
{
t=A[i];
A[i]=A[A[0]-i+1];
A[A[0]-i+1]=t;
}
}
void inversare2()
{
int i,t;
for (i=1; i<=B[0]/2; i++)
{
t=B[i];
B[i]=B[B[0]-i+1];
B[B[0]-i+1]=t;
}
}
inline int cif(char x)
{
return x>='0' && x<='9';
}
int main()
{
freopen("adunare.in","r",stdin);
freopen("adunare.out","w",stdout);
fgets(v+1,N,stdin);
while (cif(v[A[0]+1]))
{
A[0]++;
A[A[0]]=v[A[0]]-'0';
}
fgets(b+1,N,stdin);
while (cif(b[B[0]+1]))
{
B[0]++;
B[B[0]]=b[B[0]]-'0';
}
inversare1();
inversare2();
add(A,B);
for (int i=A[0]; i>=1; i--)
printf("%d",A[i]);
return 0;
}