1 条题解

  • 0
    @ 2025-10-10 19:24:14

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    
    int main(){
    	string s,w;
    	cin>>s;	
    	//r1存放带字母的参数的计算结果(未知数系数)
    	//r2存放数字的结算结果 (常数系数)
    	int i,r1=0,r2=0;
    	int f = 1;//遇到=取反 
    	char c;//存放字母 
    	for(i = 0;i < s.size();i++){
    		if(s[i]=='=') f = -1;
    		if(isalpha(s[i])&&(i==0||!isalpha(s[i]))){
    			if(i==0) r1++;
    			else if(s[i-1]=='+'||s[i-1]=='=') r1++;
    			else if(s[i-1]=='-') r1--;
    		}
    		if(s[i]=='-'||isdigit(s[i])){
    			w = w + s[i];
    			//如果是最后一个,那么w一定是数字 
    			if(i==s.size()-1){
    				r2 = r2 + f * atoi(w.c_str()); 
    //				cout<<w<<" "<<r2<<endl;
    				w = "";
    			//带字母的参数	
    			}else if(isalpha(s[i+1])){
    				r1 = r1 + f * atoi(w.c_str());
    				c = s[i+1]; 
    //				cout<<w<<" "<<r1<<endl;
    				w = "";
    			}else if(s[i+1]=='+'||s[i+1]=='='||s[i+1]=='-'){
    				//数字
    				r2 = r2 + f * atoi(w.c_str()); 
    //				cout<<w<<" "<<r2<<endl;
    				w = "";
    			}
    		}
    	}
    	
    	//cout<<r1<<" "<<r2<<endl;
    	if(r2 == 0) cout<<fixed<<setprecision(3)<<c<<"="<<0.0<<endl;
    	else cout<<fixed<<setprecision(3)<<c<<"="<<r2 * -1.0 / r1<<endl;
    }
    
    
    
    • 1

    信息

    ID
    718
    时间
    1000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    1
    已通过
    0
    上传者