| ||||||||||
| 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 | |||||||||
贴一下我的代码,轻拍了^_^#include <iostream>
#include <string>
using namespace std;
string strplus(string left, string right)
{
int large = left.size()>right.size() ? left.size() : right.size();
int small = left.size()<right.size() ? left.size() : right.size();
int flag = 0;
if(left.size()>right.size())
flag=1;
string ret=""; int carry=0;
for(int i=0; i<small; i++)
{
int l=left[i]-'0';
int r=right[i]-'0';
int sum = l+r+carry;
if(sum>=10)
carry=1;
else carry = 0;
int reted = sum % 10;
char c = '0'+reted;
ret += c;
}
for(i=small; i<large; i++)
{
if(flag)
{
int l= left[i]-'0';
int sum = l+carry;
if(sum>=10)
carry = 1;
else
carry = 0;
char c = '0' + sum%10;
ret += c;
}
else
{
int l= right[i]-'0';
int sum = l+carry;
if(sum>=10)
carry = 1;
else
carry = 0;
char c = '0' + sum%10;
ret += c;
}
}
if(carry == 1)
{
char c = '1';
ret += c;
}
int len=0;
for(i=0; i<ret.size();i++)
{
if(ret[i]=='0')
{
len++;
}
else
{
break;
}
}
ret.erase(0,len);
return ret;
}
int main()
{
int cases;
cin>>cases;
string left, right;
while(cases--)
{
cin>>left>>right;
string ret = strplus(left,right);
cout<<ret<<endl;
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator