- #include <iostream>
- #include <list>
- #include <string>
- #include <algorithm>
- using namespace std;
- inline int fromchartoint(char);
- inline char frominttochar(int);
- int main(){
- string na, nb;
- int carry;
- int len;
- int sum;
- list<char> result;
- list<char>::iterator pos;
- while(cin >> na >> nb){
- carry=0;
- result.clear();
- reverse(na.begin(),na.end());
- reverse(nb.begin(),nb.end());
- len = max(na.length(), nb.length());
- for(int i=0; i<len; i++){
- sum = carry;
- if(i<na.length())
- sum += fromchartoint(na[i]);
- if(i<nb.length())
- sum += fromchartoint(nb[i]);
- if(sum>=20){
- carry=1;
- sum-=20;
- }
- else{
- carry=0;
- }
- result.push_front(frominttochar(sum));
- }
- if(carry==1)
- result.push_front(frominttochar(carry));
- for(pos=result.begin();pos!=result.end();pos++){
- cout << *pos;
- }
- cout << endl;
- }
- }
- inline int fromchartoint(char c){
- if(c>='0'&&c<='9')
- return c-'0';
- else
- return c-'a'+10;
- }
- inline char frominttochar(int i){
- if(i>=0&&i<=9)
- return i+'0';
- else
- return i-10+'a';
- }
zoj acm 1205
最新推荐文章于 2022-02-25 21:57:21 发布