60分求助
  • 板块灌水区
  • 楼主KyleShen1213
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/25 09:52
  • 上次更新2024/8/25 12:28:43
查看原帖
60分求助
1042783
KyleShen1213楼主2024/8/25 09:52

P1689 方程求解

#include<bits/stdc++.h>
using namespace std;
int a[5]={0},c,l,pd,wz,k=0,fl=1;
string s;
int main()
{
	getline(cin,s);l=s.size();
	for(int i=0;i<=l-1;i++)
	{
		if(s[i]==' ')
		{
			continue;
		}
		if(fl==1)
		{
			if(s[i]>='0'&&s[i]<='9')
			{
				fl++;k++;
				while(s[i]>='0'&&s[i]<='9')
				{
					a[k]=a[k]*10+s[i]-'0';i++;
				}
				i--;continue;
			}
			if(s[i]=='?')
			{
				fl++;wz=1;continue;
			}
		}
		if(fl==2)
		{
			if(s[i]=='+')
			{
				fl++;c=1;continue;
			}
			if(s[i]=='-')
			{
				fl++;c=2;continue;
			}
		}
		if(fl==3)
		{
			if(s[i]>='0'&&s[i]<='9')
			{
				fl++;k++;
				while(s[i]>='0'&&s[i]<='9')
				{
					a[k]=a[k]*10+s[i]-'0';i++;
				}
				i--;continue;
			}
			if(s[i]=='?')
			{
				fl++;wz=2;continue;
			}
		}
		if(fl==4)
		{
			if(s[i]>='0'&&s[i]<='9')
			{
				fl++;k++;
				while(s[i]>='0'&&s[i]<='9')
				{
					a[k]=a[k]*10+s[i]-'0';i++;
				}
				break;
			}
			if(s[i]=='?')
			{
				wz=3;break; 
			}
		}
	}
	if(wz==1&&c==1)  pd=1;
	if(wz==2&&c==1)  pd=1;
	if(wz==3&&c==1)  pd=2;
	if(wz==1&&c==2)  pd=2;
	if(wz==2&&c==2)  pd=3;
	if(wz==3&&c==2)  pd=3;
	if(pd==1)  cout<<a[2]-a[1]<<endl;
	if(pd==2)  cout<<a[1]+a[2]<<endl;
	if(pd==3)  cout<<a[1]-a[2]<<endl;
	//cout<<pd<<" "<<wz<<" "<<c<<" "<<a[1]<<" "<<a[2]<<endl;
	//cout<<s<<endl;
	return 0;
}

测试点:R174251146 记录详情

2024/8/25 09:52
加载中...