如果你是50分……
  • 板块P1689 方程求解
  • 楼主wyxing
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/1/23 00:08
  • 上次更新2025/1/23 10:38:46
查看原帖
如果你是50分……
1573746
wyxing楼主2025/1/23 00:08
#include<bits/stdc++.h>
using namespace std;
int main() {
	string a;		char b,f;
	int su[2]={0,0},l=0,wen,deng,fu;
	while((b=getchar())!='\n')
	{
		if(b>='0'&&b<='9'||b=='+'||b=='-'||b=='='||b=='?')//这里如果改成if(b=' ')就50分,不知道为什么
			a+=b;
	}	
	
	for(int i=0; i<a.size(); i++) {
		if(a[i]>='0'&&a[i]<='9') {
			su[l]=su[l]*10+(a[i]-'0');//初始化为0乘10的好处 
			if(a[i+1]<'0'||a[i+1]>'9')l++;//判后一位,切换至第二个数 
		}
		if(a[i]=='+'||a[i]=='-'){
			f=a[i];fu=i;//位置记录
		}
		
		if(a[i]=='=')	deng=i;
		if(a[i]=='?')	wen=i;
	}

	if(f=='+') {
		if(wen==a.size()-1)
			cout<<su[1]+su[0];//5+2=?
		else
			cout<<su[1]-su[0];//1+?=4,?+3=4
	}

	else {
		if(wen==a.size()-1||wen<deng&&wen!=0)
			cout<<su[0]-su[1];//3-2=?,3-?=1
		else
			cout<<su[0]+su[1];//?-3=1
	}
	return 0;
}

2025/1/23 00:08
加载中...