ZOJ 3782: Ternary Calculation
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZOJ 3782: Ternary Calculation相关的知识,希望对你有一定的参考价值。
///@author Sycamore, ZJNU ///@accepted_on 2017-01-17 #include<iostream> using namespace std; int main() { int T; cin >> T; while (T--) { int x, y, z; char c1, c2; cin >> x >> c1 >> y >> c2 >> z; int ans; if (c1 == ‘*‘) { ans = x * y; switch (c2) { case ‘+‘: ans += z; break; case ‘-‘: ans -= z; break; case ‘*‘: ans *= z; break; case ‘/‘: ans /= z; break; case ‘%‘: ans %= z; break; } } else if (c1 == ‘/‘) { ans = x / y; switch (c2) { case ‘+‘: ans += z; break; case ‘-‘: ans -= z; break; case ‘*‘: ans *= z; break; case ‘/‘: ans /= z; break; case ‘%‘: ans %= z; break; } } else if (c1 == ‘%‘) { ans = x%y; switch (c2) { case ‘+‘: ans += z; break; case ‘-‘: ans -= z; break; case ‘*‘: ans *= z; break; case ‘/‘: ans /= z; break; case ‘%‘: ans %= z; break; } } else if (c2 == ‘*‘) { ans = y * z; if (c1 == ‘+‘) { ans += x; } else ans = x - ans; } else if (c2 == ‘/‘) { ans = y / z; if (c1 == ‘+‘) { ans += x; } else ans = x - ans; } else if (c2 == ‘%‘) { ans = y % z; if (c1 == ‘+‘) { ans += x; } else ans = x - ans; } else { switch (c1) { case ‘+‘: ans = x + y; break; case ‘-‘: ans = x - y; break; case ‘*‘: ans = x*y; break; case ‘/‘: ans = x / y; break; case ‘%‘: ans = x%y; break; } switch (c2) { case ‘+‘: ans += z; break; case ‘-‘: ans -= z; break; case ‘*‘: ans *= z; break; case ‘/‘: ans /= z; break; case ‘%‘: ans %= z; break; } } cout << ans << endl; } return 0; }
以上是关于ZOJ 3782: Ternary Calculation的主要内容,如果未能解决你的问题,请参考以下文章
439. Ternary Expression Parser
LeetCode Ternary Expression Parser