zoj 1205

版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
	}
}


猜你喜欢

转载自blog.csdn.net/yhf_naive/article/details/60880796
ZOJ