//201903-2
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
scanf("%d", &n);
//存储结果
deque<string> final;
while (n--) {
string str;
cin >> str;
//存储运算符
deque<char> c;
//存储数字
deque<int> d;
//将运算符和数字分别存储到动态数组中
for (int i = 0; i < str.size(); i++)
if (i == 1 || i == 3 || i == 5)
c.emplace_back(str[i]);
else
d.emplace_back(str[i] - '0');
int count = 3;//起始为3个运算符
for (int i = 0; i < count; i++)
if (c[i] == 'x' || c[i] == '/') {
if (c[i] == 'x')
d[i] = d[i] * d[i + 1];
else
d[i] = d[i] / d[i + 1];
//将下一个运算符和下一个数字前移
for (int j = i + 1; j < count; j++)
c[j - 1] = c[j], d[j] = d[j + 1];
//因为运算符和下一个数字的前移,所以对应的原本的运算符个数和遍历的下标要进行减减
count--, i--;
}
//若当前全部运算都是乘或除
//则所有运算结果都会存储到d[0]
int result = d[0];
for (int i = 0; i < count; i++)
if (c[i] == '+')
result = d[i] + d[i + 1], d[i + 1] = result;
else
result = d[i] - d[i + 1], d[i + 1] = result;
result == 24 ? final.emplace_back("Yes") : final.emplace_back("No");
}
for (auto it:final)
printf("%s\n", it.c_str());
return 0;
}
201903-2
最新推荐文章于 2023-09-14 00:43:50 发布