CSP201903-2二十四点

CSP201903-2二十四点_第1张图片

 

 

 

CSP201903-2二十四点_第2张图片

 

 如图所示先处理乘号和除号,再处理加减。

#include
using namespace std;
bool res[101];
int main(){ int n; cin>>n; int i,j,op1,op2; string inp; char op[3]; int nn[4]; int sum,nnum=0; int opnum=0; int nns[4]; char ops[3]; for(i=0;i){ cin>>inp; sum=0; nnum=0; opnum=0; nn[0]=inp[0]-'0'; nn[1]=inp[2]-'0'; nn[2]=inp[4]-'0'; nn[3]=inp[6]-'0'; op[0]=inp[1]; op[1]=inp[3]; op[2]=inp[5]; j=0; while(j<4){ nns[nnum++]=nn[j]; if(opnum>0&&(ops[opnum-1]=='x'||ops[opnum-1]=='/')){ op1=nns[nnum-2]; op2=nns[nnum-1]; nnum-=2; if(ops[opnum-1]=='x'){ nns[nnum++]=op1*op2; }else{ nns[nnum++]=op1/op2; } opnum--; } if(j!=3){ ops[opnum++]=op[j]; } j++; } /* for(j=0;j*/ sum=nns[0]; for(j=0;j){ if(ops[j]=='+'){ sum+=nns[j+1]; }else{ sum-=nns[j+1]; } } // cout< res[i]=(sum==24); } for(i=0;i){ if(res[i]){ cout<<"Yes\n"; }else{ cout<<"No\n"; } } }

你可能感兴趣的:(CSP201903-2二十四点)