Cod sursa(job #213082)

Utilizator raduzerRadu Zernoveanu raduzer Data 8 octombrie 2008 17:24:39
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <stdio.h>
#include <string.h>

int a[100],b[100];
char s1[110],s2[110];

void add(int a[], int b[])
{
     int i, t = 0;
     
     for (i=1; i<=a[0] || i<=b[0] || t; ++i)
     {
         a[i] = (t += a[i] + b[i]) % 10;
         t /= 10;
     }
     
     a[0]=i-1;
}

int main()
{
    freopen("adunare.in","r",stdin);
    freopen("adunare.out","w",stdout);
    
    int i,z;
    
    scanf("%s\n",&s1);
    scanf("%s\n",&s2);  
    
    a[0]=strlen(s1);
    for (i=1; i<=a[0]; ++i) a[i]=s1[i-1]-'0';
    
    for (i=1; i<=a[0]/2; ++i)
    {
        z = a[i], a[i] = a[ a[0]+1-i ], a[ a[0]+1-i ] = z;
    }
    
    b[0]=strlen(s2);
    for (i=1; i<=b[0]; ++i) b[i]=s2[i-1]-'0';
    
    for (i=1; i<=b[0]/2; ++i)
    {
        z = b[i], b[i] = b[ b[0]+1-i ], b[ b[0]+1-i ] = z;
    }
    
    for (i=a[0]; i>0; --i) printf("%d",a[i]);
    printf("\n");
    for (i=b[0]; i>0; --i) printf("%d",b[i]);
    printf("\n");
    
    add(a,b);
    
    for (i=a[0]; i>0; --i) printf("%d",a[i]);
    
    return 0;
    
}