碰到加减号,往前看;碰到乘除号,往后看。
#include <iostream>
#include <vector>
#include <cctype>
using namespace std
;
int main() {
int n
;
cin
>> n
;
while (n
--) {
string s
;
cin
>> s
;
char op
;
vector
<int> v
;
for (int i
= 0; i
< 7; ++i
) {
if (isdigit(s
[i
])) {
v
.push_back(s
[i
] - '0');
} else {
if (s
[i
] == '+' || s
[i
] == '-') {
if (v
.size() == 2) {
v
[0] = op
== '+' ? v
[0] + v
[1] : v
[0] - v
[1];
v
.pop_back();
}
op
= s
[i
];
} else {
int x
= s
[i
+ 1] - '0';
v
.back() = s
[i
] == 'x' ? v
.back() * x
: v
.back() / x
;
++i
;
}
}
}
if (v
.size() == 2) v
[0] = op
== '+' ? v
[0] + v
[1] : v
[0] - v
[1];
cout
<< (v
[0] == 24 ? "Yes" : "No") << endl
;
}
return 0;
}
转载请注明原文地址: https://mac.8miu.com/read-487390.html