版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yhf_naive/article/details/60880796
感想:水题不解释
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string>
#include<stack>
#include<map>
#include<vector>
#include<deque>
#include<cmath>
using namespace std;
int exc(char c){
if(c>='0'&&c<='9')
return c-'0';
return c-'a'+10;
}
char exc(int i){
if(i<10)
return '0'+i;
return 'a'+i-10;
}
string add(string a,string b){
int temp=0,i,j;
string s;
char c;
for(i=0;i<b.size();i++){
j=exc(b[b.size()-1-i])+exc(a[a.size()-i-1])+temp;
if(j>=20){
j-=20;
temp=1;
}
else
temp=0;
s=exc(j)+s;
}
//cout<<a<<" "<<i<<" "<<temp<<endl;
while(1){
if(a.size()-i-1==-1){
if(temp)
s='1'+s;
return s;
}
else if(exc(a[a.size()-i-1])+temp==20){
s='0'+s;
}
else{
temp=0;
s=a[a.size()-i-1]+s;
}
i++;
}
}
int main(){
string s1,s2;
while(cin>>s1>>s2){
if(s1.size()<s2.size())
swap(s1,s2);
cout<<add(s1,s2)<<endl;
}
}