#include <iostream> #include <cstring> using namespace std; const char alphabet[]="0123456789ABCDEFGHIJ"; class numar { public: int stock[1000]; //Sirul de cifre int len; //lungimea numarului numar(int nr[],int lung) //Constructor { memset(stock,0,sizeof(stock)); for(int i=0;i<lung;i++) stock[i]=nr[i]; len=lung; } friend ostream& operator<< (ostream& o, numar const& nr1); }; inline ostream& operator<< (ostream& o,numar const& nr1) { //Transforma numarul in string atunci cand se afiseaza //65535 e -1 for(int i=nr1.len-1;i!=-1;i--) o<<alphabet[nr1.stock[i]]; return o; } numar add(numar nr1,numar nr2) { //aduna doua numere, ambele in aceasi baza int base=10,trans=0,i; numar nr3(0,0); for(i=0;i<nr1.len||i<nr2.len;i++){ trans = trans + nr1.stock[i]+nr2.stock[i]; nr3.stock[i]=trans%base; trans/=base; } if(trans!=0){ nr3.len=i+1; nr3.stock[i]=trans; } else nr3.len=i; return nr3; } numar convstrtoint(string strcifre){ //Transforma stringul in clasa numar int baza=10,poz; numar nr1(0,0); for(int i = strcifre.length()-1;i!=-1;i--){ poz = strchr(alphabet,strcifre[i])-alphabet; nr1.stock[nr1.len++]=poz; } return nr1; } int main(){ string nr; cin>>nr; numar a=convstrtoint(nr); cin>>nr; numar b=convstrtoint(nr); cout<<add(a,b)<<endl; return 0; }