题目大意:给一个不含括号、只有+和*运算的表达式,数字的范围在1到20之间,算出计算结果的可能最大值和最小值。
贪心,如果加法优先级比乘法高,那么得出的结果为最大值。(a+b)*c = a*c + b*c >= a+b*c。同理,如果乘法优先级比加法高,得出的结果为最小值。
1 #include <cstdio> 2 #include <cctype> 3 4 int main() 5 { 6 #ifdef LOCAL 7 freopen("in", "r", stdin); 8 #endif 9 double lmin, lmax, lstack[30]; 10 int top; 11 int N; 12 scanf("%d", &N); 13 getchar(); 14 char s[100]; 15 while (N--) 16 { 17 gets(s); 18 char ch = '+'; 19 top = 0; 20 for (int i = 0; s[i] != '