题目要求计算给定表达式的值,其中运算符是采用字符串表示的。
总时间限制: 1000ms 内存限制: 65536kB
有些语言中表达式的运算符使用字符串表示,例如用mul代表*,用div代表/,用add代表+,用sub代表-,用mod代表%。
第一行为表达式的个数n。其余n行每行一个表达式,表达式由两个整数及其中间的运算符字符串表示。
输出为n行,每行是对应表达式的值。注意,此处要求的所有运算均为整数运算。
5
345 mul 122
3945 div 12
321 add 343
340 sub 211
377 mod 27
42090
328
664
129
26
每次分别读取一个操作数,一个字符串,一个操作数即可,判断字符串然后输出结果。
#include <iostream>
#include <string>
using namespace std;
int main() {
int n, i, num1, num2, result;
string op;
cin >> n;
for (i = 0; i < n; ++i) {
cin >> num1 >> op >> num2;
if (op == "mul") {
result = num1 * num2;
}
else if (op == "div") {
result = num1 / num2;
}
else if (op == "add") {
result = num1 + num2;
}
else if (op == "sub") {
result = num1 - num2;
}
else if (op == "mod") {
result = num1 % num2;
}
cout << result << endl;
}
return 0;
}
2696.cpp 代码长度:499B 内存:128kB 时间:1ms 通过率:98% 最小内存:128kB 最短时间:0ms
对于多个字符串的判别可以采用if else来进行分别判断。
有任何的改进意见欢迎大家在微信平台公众号主页面留言或者发表issue。