Cod sursa(job #394713)

Utilizator test9cTester test9c Data 11 februarie 2010 14:11:13
Problema A+B Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
#include<string.h>
char a[11],b[11],c[12];
int na,nb,nc,i,t,k,j;
int main()
{
	freopen("adunare.in","r",stdin);
	freopen("adunare.out","w",stdout);
	
//citire numere
	scanf("%s",a);
	scanf("%s",b);
//determin numarul de caractere
	na=strlen(a);nb=strlen(b);

//incepe adunarea
	i=na-1;j=nb-1;t=0;
	while(i>=0 && j>=0)
	{
		c[k]=(a[i]-'0'+b[j]-'0'+t)%10+'0';
		t=(a[i]-'0'+b[j]-'0'+t)/10;
		i--;j--;k++;
	}
//daca mai sunt cifre in a neadunate (b nu mai are)
	while(i>=0)
	{
		c[k]=(a[i]-'0'+t)%10+'0';
		t=(a[i]-'0'+t)/10;
		i--;k++;
	}
//daca mai sunt cifre in b neadunate (a nu mai are)
	while(j>=0)
	{
		c[k]=(b[j]-'0'+t)%10+'0';
		t=(b[j]-'0'+t)/10;
		j--;k++;
	}
//daca mai exista transport
	if(t!=0)c[k++]='1';
//afisare rezultat
	for(i=k-1;i>=0;i--)printf("%c",c[i]);
	return 0;
}