Pagini recente » Cod sursa (job #2037221) | Cod sursa (job #1042682) | Cod sursa (job #405779) | Cod sursa (job #410921) | Cod sursa (job #358289)
Cod sursa(job #358289)
#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;
}