zoukankan      html  css  js  c++  java
  • UVa 10700

      题目大意:给一个不含括号、只有+和*运算的表达式,数字的范围在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] != ''; )
    21         {
    22             int n = 0;
    23             while (isdigit(s[i]))
    24             {
    25                 n = n*10 + s[i]-'0';
    26                 i++;
    27             }
    28             if (ch == '+')   lstack[top++] = n;
    29             else lstack[top-1] *= n;
    30             if (s[i] != '')   ch = s[i++];
    31         }
    32         lmin = 0;
    33         for (int i = 0; i < top; i++)
    34             lmin += lstack[i];
    35         top = 0;
    36         ch = '*';
    37         for (int i = 0; s[i] != ''; )
    38         {
    39             int n = 0;
    40             while (isdigit(s[i]))
    41             {
    42                 n = n*10 + s[i]-'0';
    43                 i++;
    44             }
    45             if (ch == '*')   lstack[top++] = n;
    46             else lstack[top-1] += n;
    47             if (s[i] != '')   ch = s[i++];
    48         }
    49         lmax = 1;
    50         for (int i = 0; i < top; i++)
    51             lmax *= lstack[i];
    52         printf("The maximum and minimum are %.0lf and %.0lf.
    ", lmax, lmin);
    53     }
    54     return 0;
    55 }
    View Code

      也可以用动态规划,不过觉得可以用贪心就不想麻烦了。

  • 相关阅读:
    tcpCopy
    nc
    shell判断文件是否存在
    HDU1272 小希的迷宫(基础并查集)
    供应商信息一览
    ExtJS4 自己主动生成控制grid的列显示、隐藏的checkbox
    网络编程-UDP-TCP
    【经验】使用Profiler工具分析内存占用情况
    Struts2中Action自己主动接收參数
    iOS开发数据持久化技术02——plist介绍
  • 原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3219657.html
Copyright © 2011-2022 走看看