#include<bits/stdc++.h>
using namespace std;
int xi,chang;
int main()
{
char c;
string s,left,right;
cin>>s;
for(int i=0; i<s.length(); i++)
{
if(s[i]=='=')
{
left=s.substr(0,i);
right=s.substr(i+1);
}
else if(s[i]<'0'||s[i]>'9')
{
if(s[i]!='-'&&s[i]!='+')
c=s[i];
}
}
string zim=""+c;
string fuzim="-"+c;
left+="+0";
int p=0;
for(int i=0; i<left.length(); i++)
{
if(left[i]=='+'||left[i]=='-')
{
string xiang;
xiang=left.substr(p,i-p);
if(xiang[xiang.length()-1]>='0'&&xiang[xiang.length()-1]<='9')
{
chang+=atoi(xiang.data());
}
else
{
if(xiang==zim)
{
xi+=1;
}
else if(xiang==fuzim)
{
xi-=1;
}
else
xi+=atoi(xiang.substr(0,xiang.length()-1).data());
//c=xiang[xiang.length()-1];
}
p=i;
}
}
right+="+0";
p=0;
for(int i=0; i<right.length(); i++)
{
if(right[i]=='+'||right[i]=='-')
{
string xiang;
xiang=right.substr(p,i-p);
if(xiang[xiang.length()-1]>='0'&&xiang[xiang.length()-1]<='9')
{
chang-=atoi(xiang.data());
}
else
{
if(xiang==zim)
{
xi-=1;
}
else if(xiang==fuzim)
{
xi+=1;
}
else
xi-=atoi(xiang.substr(0,xiang.length()-1).data());
//c=xiang[xiang.length()-1];
}
p=i;
}
}
double ans;
ans=-1.0*chang/xi;
printf("%c=%.3f",c,ans);
return 0;
}
```根据讨论版修改了一些 开O2点还不一样
不开 过2个
开 过4个
离谱QAQ