| |
---|
试题编号 | 201903-2 |
试题名称 | 二十四点 |
时间限制 | 1.0s |
内存限制 | 512.0MB |
问题描述 | |
| |
int main()
{
int n;
cin >> n;
string s;
int num[4];
char opt[3];
int ans = 0;
while (n--)
{
cin >> s;
for (int i = 0; i < s.size(); i++)
{
if (i % 2 == 0)
num[i / 2] = (int)s[i]-48;
else
opt[i / 2] = s[i];
}
cout << num[1]<<endl;
for (int i = 0; i < sizeof(opt); i++)
cout << opt[i] << endl;
if (judge(opt))
ans = calculate((calculate((calculate(num[0], num[1], opt[0])), num[2], opt[1])), num[3], opt[2]);
else
{
if (opt[0] == '*' || opt[0] == '/')
{
ans = calculate(num[0], num[1], opt[0]);
if (opt[1] == '*' || opt[1] == '/')
ans = calculate((calculate(ans, num[2], opt[1])), num[3], opt[2]);
else
{
if (opt[2] == '*' || opt[2] =='/')
ans = calculate(ans,(calculate(num[2], num[3], opt[2])), opt[1]);
else
ans = calculate((calculate(ans, num[2], opt[1])), num[3], opt[2]);
}
}
else
{
if (opt[1] == '*' || opt[1] == '/')
ans = calculate((calculate((calculate(num[1], num[2], opt[1])), num[3], opt[2])), num[0], opt[0]);
else
ans = calculate((calculate((calculate(num[2], num[3], opt[2])), num[1], opt[1])), num[0], opt[0]);
}
}
if (ans == 24)
cout << "Yes" << endl;
else
cout << "No" << endl;
}
return 0;
}
参考于此链接