本机AC,洛谷只A了#2
查看原帖
本机AC,洛谷只A了#2
934196
yonghang楼主2023/6/11 11:41
#include<bits/stdc++.h>
using namespace std;
char s[10005],unkown;
int xs,ss,dw;
int main()
{
	cin.getline(s,sizeof s);
	for(int i=0;i<strlen(s);i++)
	{
		if(s[i]=='=')
		{
			dw=i;
			break;
		}
		if(s[i]>='a'&&s[i]<='z')
		{
			unkown=s[i];
			int k=i-1,t=0,inf=1;
			while(s[k]>='0'&&s[k]<='9'&&k>=0)
			{
				t+=inf*(s[k]-'0');
				inf*=10;
				k--;
			}
			if(t==0) t=1;
			if(k>=0&&s[k]=='-') t*=-1;
			xs+=t;
		}
		else if(s[i]<='9'&&s[i]>='0')
		{
			int k=i,t=0,inf=1;
			while(s[k]>='0'&&s[k]<='9'&&k>=0&&(s[i+1]=='+'||s[i+1]=='-'||s[i+1]=='='))
			{
				t-=inf*(s[k]-'0');
				inf*=10;
				k--;
			}
			if(k>=0&&s[k]=='-') t*=-1;
			ss+=t;
		}
	}
//	cout<<xs<<" "<<ss<<endl<<endl;
	for(int i=dw+1;i<strlen(s);i++)
	{
		if(s[i]>='a'&&s[i]<='z')
		{
			unkown=s[i];
			int k=i-1,t=0,inf=1;
			while(s[k]>='0'&&s[k]<='9'&&k>=0)
			{
				t-=inf*(s[k]-'0');
				inf*=10;
				k--;
			}
			if(t==0) t=-1;
			if(k>=0&&s[k]=='-') t*=-1;
			xs+=t;
		//	cout<<t<<endl;
		}
		else if(s[i]<='9'&&s[i]>='0'&&(s[i+1]=='+'||s[i+1]=='-'||s[i+1]=='='||i+1>=strlen(s)))
		{
			int k=i,t=0,inf=1;
			while(s[k]>='0'&&s[k]<='9'&&k>=dw)
			{
				t+=inf*(s[k]-'0');
				inf*=10;
				k--;
			}
			if(k>=0&&s[k]=='-') t*=-1;
			ss+=t;
		//	cout<<t<<" ";
		}
	}
//	cout<<ss<<" "<<xs<<endl<<endl;
	double ans=(ss*1.0)/(xs*1.0)
	if(ans==-0) ans=0;
	printf("%c=%.3lf",unkown,ans);
}
2023/6/11 11:41
加载中...