Cod sursa(job #358289)

Utilizator alexandru92alexandru alexandru92 Data 22 octombrie 2009 16:05:03
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
#include <string>
#include <fstream>
#include <cstdlib>

/*
 *
 */
 using namespace std;
 ifstream in;
 ofstream out;
 class BigNumber
 {
     string Number;
public:
     BigNumber operator+(  BigNumber );
     BigNumber operator-( BigNumber );
     BigNumber operator*( BigNumber );
     BigNumber operator/( BigNumber );
     inline void push( istream& );
     inline void output( ostream& );
 };
 BigNumber BigNumber::operator+( BigNumber Number1 )
 {BigNumber s;
  long t=0,sum;
     string::const_iterator it=Number.begin(), it2=Number1.Number.begin();
     while(  *it && *it2 )
     {
         sum= *it-'0' + *it2-'0' + t;
         if( sum > 9 )
            t=sum%100, sum%=10;
        s.Number.push_back(sum+'0');
        ++it; ++it2;
     }
     if( !*it )
       while( *it2 )
            s.Number.push_back( *it2 ),++it2;
     else while( *it )
               s.Number.push_back( *it ),++it;
     //reverse( s.Number.begin(), s.Number.end() );
     return s;
 }
 inline void BigNumber::push( istream& in )
 {
     in>>Number;
 }
 inline void BigNumber::output( ostream& out )
 {
     out<<Number;
 }
 int main()
 {BigNumber a,b;
     in.open("adunare.in");
     a.push(in); b.push(in);
     out.open("adunare.out");
     a=a+b;
     a.output(out);
     return EXIT_SUCCESS;
 }