Pagini recente » Cod sursa (job #132624) | Cod sursa (job #2216482) | Cod sursa (job #2716963) | Cod sursa (job #933764) | Cod sursa (job #1718002)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("adunare.in");
ofstream out("adunare.out");
class int_huge
{
public:
int_huge() {}
int_huge operator+(int_huge &object)
{
int_huge solution,A,B;
for(int i=0;i<=this->number[0];++i)
{
A.number[i]=this->number[i];
}
for(int i=0;i<=object.number[0];++i)
{
B.number[i]=object.number[i];
}
int j,t=0;
for(j=1;j<=A.number[0] or j<=B.number[0] or t;++j,t/=10)
{
t+=A.number[j]+B.number[j];
A.number[j]=t%10;
}
A.number[0] = j-1;
for(int i=0;i<=A.number[0];++i)
{
solution.number[i]=A.number[i];
}
return solution;
}
void printNumber();
void readNumber();
private:
short number[5010];
};
void int_huge::printNumber()
{
for(int i=this->number[0];i>0;--i)
{
out<<this->number[i];
}
}
void int_huge::readNumber()
{
char c;
c=in.get();
this->number[0]=0;
while(c!='\n' and c!=NULL)
{
this->number[0]++;
this->number[this->number[0]]=c-'0';
c=in.get();
}
for(int i=1;i<=this->number[0]/2;++i)
{
this->number[i]^=this->number[this->number[0]-i+1]^=this->number[i]^=this->number[this->number[0]-i+1];
}
}
int main()
{
int_huge a,b;
a.readNumber();
b.readNumber();
int_huge c=a+b;
c.printNumber();
in.close();out.close();
return 0;
}