感想:水题不解释
#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; } }