题目
分析
分析: 定义两个vector容器分别存储操作数和操作符,然后进行四则运算即可。
源码
#include <iostream>
#include <vector>
#include <cstdio>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; ++i)
{
string a;
cin >> a;
vector<int>num;
vector<char>opt;
for (int j = 0; j < 7; ++j)
{
if (a[j] >= '0' && a[j] <= '9')
{
int ans = a[j] - '0';
num.push_back(ans);
}
else if (a[j] == 'x')
{
int xm = num[num.size() - 1] * (a[j + 1] - '0');
num.pop_back();
num.push_back(xm);
j++;
}
else if (a[j] == '/')
{
int ym = num[num.size() - 1] / (a[j + 1] - '0');
num.pop_back();
num.push_back(ym);
j++;
}
else if (a[j] == '+')
{
opt.push_back(a[j]);
}
else if (a[j] == '-')
{
opt.push_back(a[j]);
}
}
int sum = num[0];
for (int j = 0; j < opt.size(); ++j)
{
if (opt[j] == '+')
{
sum += num[j + 1];
}
else
{
sum -= num[j + 1];
}
}
if (sum == 24)
{
cout << "Yes" << endl;
}
else
{
cout << "No" << endl;
}
}
return 0;
}