记录编号 451659 评测结果 AAAAA
题目名称 [NOIP 2000PJ]计算器的改良 最终得分 100
用户昵称 GravatarMenamovic 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2017-09-18 07:20:08 内存使用 0.00 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
#define MENA MenaS

using namespace std;

string s;
string s1="",s2="";

int coe=0;//参数的系数,在等号左边 
int sum=0;//常数的和,在等号右边 
bool flag=true;
int tmp;
int len;
char a;
double ans;

int Main()
{
	freopen("computer.in","r",stdin);
	freopen("computer.out","w",stdout);
	ios::sync_with_stdio(false);
	cin>>s;
	int l=0,r=s.size();
	len=s.size();
	while(s[l]!='=') s1+=s[l],l++;
	while(s[r]!='=') s2=s[r]+s2,r--;
	//系数和参数在等号左边,常数移到等号右边 
	for(int i=0;i<=l;i++)//等号左边 
	{
		if(s[i]>='0' && s[i]<='9') tmp=tmp*10+s[i]-'0';
		if(s[i]>='a' && s[i]<='z') a=s[i],coe+=(tmp==0?1:tmp)*(flag?(1):(-1)),tmp=0;
		if(s[i]=='+' || s[i]=='-' || s[i]=='=')
		{
			if(s[i-1]>='0' && s[i-1]<='9') sum+=tmp*(flag?(-1):(1));
			tmp=0;
			if(s[i]=='-') flag=0;else flag=1;
		}
	}
	tmp=0;
	for(int i=l+1;i<len;i++)//等号右边 
	{
		if(s[i]>='0' && s[i]<='9') tmp=tmp*10+s[i]-'0';
		if(s[i]>='a' && s[i]<='z') a=s[i],coe+=(tmp==0?1:tmp)*(flag?(-1):(1)),tmp=0;
		if(s[i]=='+' || s[i]=='-')
		{
			if(s[i-1]>='0' && s[i-1]<='9') sum+=tmp*(flag?(1):(-1));
			tmp=0;
			if(s[i]=='-') flag=0;else flag=1;
		}
	}
	sum+=(flag?tmp:tmp*(-1));//不能忽略最后一个常数 
	ans=(double)sum/(double)coe;
	if(ans==0) ans=0;//特判 
	printf("%c=%.3lf",a,ans);
	return 0;
}
int main(){;}
int MENA=Main();