ccf二十四点Java_ccf 2019_03_2 二十四点

#include #include #include #include #include using namespace std; int jisuan(int a, char c, int b) { if (c == '+') return a + b; else if (c == '-') return a - b; else if (c == 'x') return a * b; else if (c == '/') return a / b; } int main() { int n; cin >> n; while (n--) { stack qint; stack qchar; char a[8]; cin >> a; for (int i = 0; i < 7; i++) { if (a[i] == 'x' || a[i] == '/') { int b = qint.top(); qint.pop(); int x = jisuan(b, a[i], a[i + 1] - '0'); i++; qint.push(x); } else { if ((a[i] == '-' || a[i] == '+')) qchar.push(a[i]); else { qint.push(a[i] - '0'); } } } stack qint2; stack qchar2; while (!qint.empty()) { qint2.push(qint.top()); qint.pop(); } while (!qchar.empty()) { qchar2.push(qchar.top()); qchar.pop(); } while (!qchar2.empty()) { int a = qint2.top(); qint2.pop(); int b = qint2.top(); qint2.pop(); char x = qchar2.top(); qchar2.pop(); int dd = jisuan(a, x, b); qint2.push(dd); } if (qint2.top() == 24) cout << "Yes" << endl; else cout << "No" << endl; } return 0; }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值