Pagini recente » Cod sursa (job #2832065) | Cod sursa (job #555152) | Cod sursa (job #2627313) | Cod sursa (job #1102924) | Cod sursa (job #680318)
Cod sursa(job #680318)
#include <iostream>#include <stdio.h>
#include <string>
using namespace std;
class OperatiiNumereMari{
public:
string adunare(string x, string y){
if (x.size()<y.size()){
string aux=x;
x=y;
y=aux;
}
int i=x.size()-1,j=y.size()-1,n,m,rap=0;
while (j>=0){
n=x[i]-'0';
m=y[j]-'0';
n+=m+rap;
rap=0;
if (n>9){
rap=1;
n%=10;
}
x[i]=n+'0';
j--;
i--;
}
if (rap){
while (i>=0 && rap){
n=x[i]-'0';
n+=rap;
rap=0;
if (n>9){
rap=1;
n%=10;
}
x[i]=n+'0';
i--;
}
}
if (rap){
x.resize(x.size()+1,'s');
for (i=x.size()-1;i>0;i--)
x[i]=x[i-1];
x[0]=rap+'0';
}
return x;
}
string inmultire(string x,string y){
string n="1",aux=x;
while (y!=n){
x=adunare(x,aux);
n=adunare(n,"1");
}
return x;
}
string sqr(string x,string y){
string n="1",aux=x;
while (y!=n){
x=inmultire(x,aux);
n=adunare(n,"1");
}
return x;
}
};
int main()
{
OperatiiNumereMari operatie;
freopen("adunare.in","r",stdin);
freopen("adunare.out","w",stdout);
string a,b;
cin >> a >> b;
cout << operatie.adunare(a,b);
return 0;
}