Cod sursa(job #523132)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 17 ianuarie 2011 09:56:02
Problema A+B Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <stdio.h>
FILE *f=fopen("adunare.in","r");
FILE *g=fopen("adunare.out","w");

int a[101],b[101],c[102];

/*void inv(int q,int z){
	if(q==1){
		register int t,p=1,u=z;
		while(p<=u){
			t=a[p];
			a[p]=a[u];
			a[u]=a[p];
			p++; u--;
		}
	}
	else{
		register int t,p=1,u=z;
		while(p<=u){
			t=a[p];
			a[p]=a[u];
			a[u]=a[p];
			p++; u--;
		}
	}

}*/

int main(void){
	register int i,j;
	
	register char ch;
	i=0;
	register unsigned long long x;
	fscanf(f,"%lld",&x);
	while(x!=0){
		a[++i]=x%10;
		x/=10;
	}
	//inv(1,i);
	register int k=i,t,q;
	i=0;
	fscanf(f,"%lld",&x);
	while(x!=0){
		b[++i]=x%10;
		x/=10;
	}
	q=i;
	//inv(2,q);
	register int max=(k<q?k:q);
	for(i=1,t=0;i<=max;i++){
		c[i]=(a[i]+b[i]+t)%10;
		t=(a[i]+b[i]+t)/10;
	}
	c[0]=max;
	if(t!=0){
		c[++c[0]]=t;
	}
	for(i=c[0];i>=1;i--)
		fprintf(g,"%d",c[i]);
	return 0;
}