Cod sursa(job #1098152)

Utilizator felixiPuscasu Felix felixi Data 4 februarie 2014 15:55:27
Problema A+B Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream in("adunare.in");
ofstream out("adunare.out");

const int baza= 10;

void hh_add(vector<int> &x, vector<int> &y){
    int t= 0;
    for(int i=0; i<(int)x.size()||i<(int)y.size()||t!=0; ++i){
        if(i==(int)x.size()){
            x.push_back(0);
        }
        if(i<(int)y.size()){
            x[i]+= y[i];
        }
        x[i]+=t;
        if(x[i]>=baza){
            x[i]-= baza;
            t= 1;
        }
        else t= 0;
    }
}

void transforma(int n, vector<int> &x){
    while(n!=0){
        x.push_back(n%baza);
        n/=baza;
    }
}

void scrie(vector <int> x){
    for(int i= (int)x.size()-1; i>=0; i--){
        out<<x[i];
    }
}

int main()
{
    long long a,b;
    vector <int> x;
    vector <int> y;
    in>>a>>b;
    transforma(a, x);
    transforma(b, y);
    hh_add(x,y);
    scrie(x);
    in.close();
    out.close();
    return 0;
}