67分,WAon#1、#4、#7、#10
查看原帖
67分,WAon#1、#4、#7、#10
928783
zjs123bc_楼主2023/11/19 20:12
#include <algorithm>
#include <iostream>
#include <cstring>
#include <iomanip>
#include <cstdio>
#include <limits>
#include <math.h>
#include <string>
#include <vector>
#include <cmath>
#include <deque>
#include <queue>
#include <stack>
#include <map>
#include <set>
using namespace std;
typedef double dl;
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
string s,n,s1,s2,s3;
ll yi,er,san,wei,fw,dw,linwei;
char fu;
ll poww(ll a,ll b)
{
	ll ans=1;
	for(ll i = 1;i <= b;i++) ans*=a;
	return ans;
}
int main()
{
	getline(cin,s);
	n="";
	for(int i = 0;i < s.size();i++) if((s[i]>='0'&&s[i]<='9') || s[i]=='+' || s[i]=='-' || s[i]=='*' || s[i]=='/' || s[i]=='=' || s[i]=='?') n+=s[i];
	int len = n.size();
	linwei = 1;
	wei=1;
	for(int i = 0;i < len;i++)
	{
		if(n[i]=='?') linwei=wei;
		if(n[i]=='+') {fu='+';fw=i;wei++;}
		if(n[i]=='-') {fu='-';fw=i;wei++;}
		if(n[i]=='*') {fu='*';fw=i;wei++;}
		if(n[i]=='/') {fu='/';fw=i;wei++;}
		if(n[i]=='=') {wei++;dw=i;}
	}
	if(linwei==1) {fu=char(n[1]);fw=1;}
	wei=linwei;
	if(wei!=1)
	{
		for(int i = 0;i < fw;i++)s1+=n[i];
		if(wei!=2)
		{
			for(int i = fw+1;i < dw;i++)s2+=n[i];
			s3='?';
		}
		if(wei==2)
		{
			s2='?';
			for(int i = dw+1;i < len;i++)s3+=n[i];
		}
	}
	else
	{
		s1='?';
		if(wei!=2)
		{
			for(int i = fw+1;i < dw;i++)s2+=n[i];
			s3='?';
		}
		if(wei==2)
		{
			s2='?';
			for(int i = dw+1;i < len;i++)s3+=n[i];
		}
	}
	reverse(s1.begin(),s1.end());
	reverse(s2.begin(),s2.end());
	reverse(s3.begin(),s3.end());
	if(s1!="?") for(int i = 0;i < s1.size();i++) yi+=int(s1[i]-'0')*poww(10,i);
	if(s2!="?") for(int i = 0;i < s2.size();i++) er+=int(s2[i]-'0')*poww(10,i); 
	if(s3!="?") for(int i = 0;i < s3.size();i++) san+=int(s3[i]-'0')*poww(10,i);
	if(s1=="?")
	{
		if(fu=='+') printf("%.2lf",double(san)-double(er));
		if(fu=='-') printf("%.2lf",double(san)+double(er));
		if(fu=='*') printf("%.2lf",double(san)/double(er));
		if(fu=='/') printf("%.2lf",double(san)*double(er));
	}
	if(s2=="?")
	{
		if(fu=='+') printf("%.2lf",double(san)-double(yi));
		if(fu=='-') printf("%.2lf",double(yi)-double(san));
		if(fu=='*') printf("%.2lf",double(san)/double(yi));
		if(fu=='/') printf("%.2lf",double(yi)/double(san));
	}
	if(s3=="?")
	{
		if(fu=='+') printf("%.2lf",double(yi)+double(er));
		if(fu=='-') printf("%.2lf",double(yi)-double(er));
		if(fu=='*') printf("%.2lf",double(yi)*double(er));
		if(fu=='/') printf("%.2lf",double(yi)/double(er));
	}
	return 0;
}

蒟蒻求助WAon#1、#4、#7、#10

记录

2023/11/19 20:12
加载中...