UVA10700求只有加法和减法的表达式的最大值和最小值

来源:互联网 发布:php集成开发环境有哪些 编辑:程序博客网 时间:2024/05/29 17:20

这题,不难,想了一会,1A,

代码:

#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<string>#include<set>#include<map>#include<iostream>#include<algorithm>#include<vector>#include<cctype>#include<queue>#define LL long longusing namespace std;const int maxn=1e7+10;const double eps=1e-8;const int Max=2147483647;LL s_min(string s){    LL sum=0;    int num=0;    LL flag=1;    for(int i=0;i<=s.length();i++)    {        if(s[i]=='*')        {           flag*=num;           num=0;        }        else if(i==s.length()||s[i]=='+')        {            sum=sum+num*flag;            num=0;            flag=1;        }        else        {            num=num*10+s[i]-'0';        }    }    return sum;}LL s_max(string s){    LL sum=1;    int num=0;    int flag=0;     for(int i=0;i<=s.length();i++)    {        if(s[i]=='+')        {            flag+=num;            num=0;        }        else if(i==s.length()||s[i]=='*')        {            sum=sum*(flag+num);            flag=0;            num=0;        }        else        {            num=num*10+s[i]-'0';        }    }    return sum;}int main(){    int n;    cin>>n;    while(n--)    {        string s;        cin>>s;       printf("The maximum and minimum are %lld and %lld.\n",s_max(s),s_min(s));    }    return 0;}

0 0