CCF 2019-12-3 化学方程式 100分

试题编号: 201912-3
试题名称: 化学方程式
时间限制: 1.0s
内存限制: 512.0MB
问题描述:

CCF 2019-12-3 化学方程式 100分_第1张图片

CCF 2019-12-3 化学方程式 100分_第2张图片

 

#include
#include
#include 
using namespace std;

string str;

int getNum(int i){//从i位置获取一个数字 
	if(i>=str.size() || (str[i]>'9' || str[i]<'0'))return 1;
	int j=i,sum=0;
	while(str[j]<='9' && str[j]>='0'){
		j++;
	}
	string s=str.substr(i,j-i);
	str.erase(i,j-i);
	for(i=0;i>n;
	while(n--){
		cin>>str;
		int i=0;
		int dbs=1,xbs=1;
		for(i=0;i='0' && str[i]<='9')i--;
					else if(str[i]>='a' && str[i]<='z'){
						xbs=getNum(i+1);
						string str_num=getStr(dbs*xbs);
						str.insert(i+1,str_num);
						i-=2;
					}
					else if(str[i]>='A' && str[i]<='Z'){
						xbs=getNum(i+1);
						string str_num=getStr(dbs*xbs);
						str.insert(i+1,str_num);
						i--;
					}
				}
				str.erase(i,1);
			}
		}
		
		
		dbs=getNum(0);xbs=1;
		i=0;
		while(i='A' && str[i]<='Z') && (str[i+1]>='a' && str[i+1]<='z')){
				xbs=getNum(i+2);
				str.insert(i+2,getStr(dbs*xbs));
				i+=2;
			} else{
				xbs=getNum(i+1);
				str.insert(i+1,getStr(dbs*xbs));
				i++;
			}
			while(1){
				if(i>=str.size())break;
				if(str[i]<'0' || str[i]>'9')break;
				i++;
			}
			if(str[i]=='+' || str[i]=='='){
				dbs=getNum(i+1);i++;
			}
		}
		
		map mp;
		dbs=1;i=0;
		while(i='A' && str[i]<='Z') && (str[i+1]>='a' && str[i+1]<='z')){
				mp[str.substr(i,2)]+=getNum(i+2)*dbs;
				i+=2;
			}else{
				mp[str.substr(i,1)]+=getNum(i+1)*dbs;
				i++;
			}
			if(str[i]=='+' || str[i]=='='){
				if(str[i]=='=')dbs=-1;
				i++;
			}
		}
		map::iterator it;
		for(it=mp.begin();it!=mp.end();it++){
			if(it->second!=0)break;
		}
		if(it==mp.end())cout<<"Y"<

更多相关CCF的试题解答,请点击>>CCF历年认证考试解答

你可能感兴趣的:(CCF 2019-12-3 化学方程式 100分)