CSP 201903-2 二十四点(C++)

#include <bits/stdc++.h>
using namespace std;
void solve()
{
    stack<int> k;
    string s;
    cin>>s;
    k.push(s[0]-'0');
    for(int i=1; i<7; i++)
    {
        if(s[i]=='x')
        {
            int tmp=k.top();
            k.pop();
            k.push(tmp*(s[++i]-'0'));
        }
        else if(s[i]=='/')
        {
            int tmp=k.top();
            k.pop();
            k.push(tmp/(s[++i]-'0'));
        }
        else if(s[i]=='+')
        {
            continue;
        }
        else if(s[i]=='-')
        {
            k.push(-(s[++i]-'0'));
        }
        else k.push(s[i]-'0');
    }
    int sum=0;
    while(k.size()!=0)
    {
        int tmp=k.top();
        //cout<<tmp<<endl;
        sum+=tmp;
        k.pop();
    }
    if(sum==24)  cout<<"Yes"<<endl;
    else    cout<<"No"<<endl;
}
int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        solve();
    }
    return 0;
}

//10
//9+3+4x3
//5+4x5x5
//7-9-9+8
//5x6/5x4
//3+5+7+9
//1x1+9-9
//1x9-5/9
//8/5+6x9
//6x7-3x6
//6x4+4/5

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值