试题编号: | 201903-2 |
试题名称: | 二十四点 |
时间限制: | 1.0s |
内存限制: | 512.0MB |
问题描述: |
#include<iostream>
#include<vector>
using namespace std;
int main(){
vector<int> num;
vector<char> op;
string str;
int n;
cin>>n;
while(n--){
cin>>str;
for(int i=0;i<str.size();i++){
if(i%2==0){
num.push_back(str[i]-'0');
}else{
op.push_back(str[i]);
}
}
for(int i=0;i<op.size();i++){
if(op[i]=='x'){
num[i]=num[i]*num[i+1];
num.erase(num.begin()+i+1);
op.erase(op.begin()+i);
i=-1;
}
if(op[i]=='/'){
num[i]=num[i]/num[i+1];
num.erase(num.begin()+i+1);
op.erase(op.begin()+i);
i=-1;
}
}
while(op.size()>0){
if(op[0]=='+'){
num[0]=num[0]+num[1];
num.erase(num.begin()+1);
op.erase(op.begin());
}
if(op[0]=='-'){
num[0]=num[0]-num[1];
num.erase(num.begin()+1);
op.erase(op.begin());
}
}
//cout<<num[0]<<endl;
if(num[0]==24)cout<<"Yes"<<endl;
else cout<<"No"<<endl;
num.clear();op.clear();
}
}
更多相关CCF的试题解答,请点击>>CCF历年认证考试解答