| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Code#include"iostream"
#include"string"
using namespace std;
int alen1,alen2;
string s1,s2;
int sum[50000],an[50000],am[50000];
bool compare();
void Jian(string s1,string s2)
{
int i,s,f;
memset(an,0,sizeof(an));
memset(am,0,sizeof(am));
memset(sum,0,sizeof(sum));
alen1=s1.size();
alen2=s2.size();
f=0;
for(i=0;i<alen1;i++)
an[i]=s1[alen1-i-1]-'0';
for(i=0;i<alen2;i++)
am[i]=s2[alen2-i-1]-'0';
if(alen1>alen2||(alen1==alen2&&s1[0]>=s2[0]))
{
for(i=0;i<alen1;i++)
{
sum[i]=an[i]-am[i];
if(sum[i]<0)
{
sum[i]+=10;
an[i+1]--;
}
}
}
else
{
for(i=0;i<alen2;i++)
{
sum[i]=am[i]-an[i];
if(sum[i]<0)
{
sum[i]+=10;
am[i+1]--;
}
}
f=1;
}
s=i;
while(s>=0)
{
if(s==0){cout<<sum[0];break;}
if(sum[s]){
if(f)cout<<"-";
cout<<sum[s];break;
}
s--;
}
for(i=s-1;i>=0;i--)cout<<sum[i];
cout<<endl;
}
void Jia(string s1,string s2)
{
int i,j,t,t2,k;
t=0;k=0;
t2=s2.size()-1;
for(i=s1.size()-1;i>=0;i--)
{
if(t2>=0)
{
sum[t++]=(s1[i]-'0'+s2[t2]-'0')+k;
k=0;
if(sum[t-1]>=10){
k=1;
sum[t-1]-=10;
}
t2--;
}
else {
sum[t++]=(s1[i]-'0')+k;
k=0;
if(sum[t-1]>=10){
k=1;
sum[t-1]-=10;
}
}
}
for(j=t2;j>=0;j--)
{
sum[t++]=(s2[j]-'0')+k;
k=0;
if(sum[t-1]>=10){
k=1;
sum[t-1]-=10;
}
}
if(k)cout<<k;
for(i=t-1;i>=0;i--)cout<<sum[i];
cout<<endl;
}
int main()
{
int t,f1,f2;
cin>>t;
while(t--)
{
memset(sum,0,sizeof(sum));
f1=f2=1;
cin>>s1>>s2;
if(s1[0]=='+')s1.erase(0,1);
if(s2[0]=='+')s2.erase(0,1);
if(s1[0]=='-'){f1=-1;s1.erase(0,1);}
if(s2[0]=='-'){f2=-1;s2.erase(0,1);}
if(f1*f2==1)
{
if(f1==1)Jia(s1,s2);
else {
cout<<"-";
Jia(s1,s2);
}
}
else {
if(f1==-1)
{
Jian(s2,s1);
}
else Jian(s1,s2);
}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator