2020.12.13
csp今天就考試完了,我用了三天的時間,倒著刷完了所有的第一題,正著刷第二題,就到了這里,暫時結束吧,
哎,發現現在的考試越來越難了,
今天的考試連第二個體都過不了,
我死了,
拿錢去奶CCF官網,以后報名可能真的就要好貴好貴了,
問題描述
試題編號: 201903-2
試題名稱: 二十四點
時間限制: 1.0s
記憶體限制: 512.0MB


沒通過的代碼
暫時保存一下
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
while(n--) {
stack<int> dig;
stack<char> op;
string s;
cin>>s;
int sum=0;
for(int i=0; i<s.length(); i++) {
//進符號堆疊
if(s[i]=='+'||s[i]=='-'||s[i]=='x'||s[i]=='/') {
//+ -
if(s[i]=='+'||s[i]=='-') {
if(!op.empty()&&!dig.empty()&&(op.top()=='/'||op.top()=='x')) {
int ch=op.top();
op.pop();
int q=dig.top();
dig.pop();
int w=dig.top();
dig.pop();
int e;
if(ch=='/')
e=w/q;
else if(ch=='x')
e=w*q;
dig.push(e);
} else {
op.push(s[i]);
}
}
//x /
else if(s[i]=='x'||s[i]=='/') {
op.push(s[i]);
}
}
//進數字堆疊
else {
op.push(s[i]);
}
}
while(!op.empty()) {
char q=op.top();
op.pop();
int w=dig.top();
dig.pop();
int e=dig.top();
dig.pop();
int r;
if(q=='+')
r=e+w;
else if(q=='-')
r=e-w;
else if(q=='x')
r=e*w;
else if(q=='/')
r=e/w;
dig.push(r);
}
if(dig.top()==24)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/234335.html
標籤:其他
上一篇:用Java開發貪食蛇小游戲
下一篇:總結與短期規劃
