Cod sursa(job #1109950)

Utilizator nacrocRadu C nacroc Data 17 februarie 2014 18:47:55
Problema A+B Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include<fstream>
#include<math.h>
using namespace std;
int main()
{
    char a[70],b[70],x;
    int i,j,lna,lnb,nr,dif,limit,t,suma[71];
    ifstream f("adunare.in");
    ofstream g("adunare.out");
    i=1;j=1;nr=0;
    while(f>>x)
    {
        while(f.peek()!='\n' && nr==0)
        {
            a[i]=x;
            i++;
            f>>x;
        }
        if(nr==0)
        a[i]=x;
        nr++;
        b[j]=x;
        j++;
    }
    lna=i;
    lnb=j-1;
    for(i=2;i<j;i++)
    b[i-1]=b[i];
    lnb--;
    dif=fabs(lna-lnb);
    while(dif!=0)
    {
        if(lna>lnb)
        {
            for(i=lnb;i>=1;i--)
            b[i+1]=b[i];
            lnb++;
            b[1]='0';
        }
        else
        {
            for(i=lna;i>=1;i--)
            a[i+1]=a[i];
            lna++;
            a[1]='0';
        }
        dif--;
    }
    limit=lnb;
    t=0;
    for(i=limit;i>=1;i--)
    {
        if(int(a[i])-48+int(b[i])-48<10)
        {suma[i]=int(a[i])-48+int(b[i])-48+t;
        t=0;}
        else
        {suma[i]=int(a[i])-48+int(b[i])-48+t-10;
        t=1;}
    }
    for(i=1;i<=limit;i++)
    g<<suma[i];
    f.close();
    g.close();
    return 0;
}