Pagini recente » Cod sursa (job #860743) | Cod sursa (job #1296765) | Cod sursa (job #2885870) | Cod sursa (job #1255360) | Cod sursa (job #275966)
Cod sursa(job #275966)
using namespace std;
#include<cstdio>
# define N 11
int a[N],b[N],i=1,c,j=1,k,max1,s[N],sc,sa,sb;
char x;
int main()
{
freopen("adunare.in","r",stdin);
scanf("%c",&x);
if(x=='-') sa=-1;
else {sa=1; a[i++]=int(x)-int('0');}
while(scanf("%c",&x) != EOF && x!='\n')
a[i++]=int(x)-int('0');
scanf("%c",&x) ;
if(x=='-') sb=-1;
else {sb=1; b[j++]=int(x)-int('0');}
while(scanf("%c",&x) !=EOF)
b[j++]=int(x)-int('0');
if(i>j) {max1=i;sc=sa;}
else {max1=j;sc=sb;}
if(sa<sb&&sa==sc) {sa=1;sb=-1;}
if(sb<sa&&sb==sc) {sb=1;sa=-1;}
k=max1;
while(i && j)
{
c=c+(sa*a[i])+(sb*b[j]);i--;j--;
if(c<0) {s[max1--]=10+c; c=-1;}
else if(c<10) {s[max1--]=c;c=0;}
else {s[max1--]=10-c; c=1;}
}
while(i) {s[max1--]=c+a[i];c=0; i--;}
while(j){s[max1--]=c+b[j];c=0;j--;}
freopen("adunare.out","w",stdout);
if (sc==-1)printf("-");
for(i=max1+1;i<k;i++)
printf("%d",s[i]);
printf("\n");
return 0;
}