zoukankan      html  css  js  c++  java
  • Problem H: STL——表达式求值

    Problem H: STL——表达式求值

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 3439  Solved: 2052
    [Submit][Status][Web Board]

    Description

    给出一个表达式,求出其值。表达式中只存在 +、-、*、三种运算,我们假设表达式是正确的,
          且不存在除数为零的情况。
     
     
     
     

    Input

    第一行输入一个正整数 n(1<=n<=30) ,表示有表达式 n 个数(每个数均小于100),表达式中只有数值(都是大于零的数)
          和运算符(包括+、-、*、=四种运算符,其中 = 只在表达式最后,表示一个表达式输出结束,且整个表达式不存在空格)
     

    Output

    表达式的值(表达式的值不会超出 double 的范围并保留两位小数)
     
     

    Sample Input

    5
    1*2*3*4*5=
    5
    5-1-2+3+4=

    Sample Output

    120.00
    9.00

    HINT

    使用STL的stack容易实现。


    Append Code

    #include <iostream>
    #include <stack>
    #include <iomanip>
    using namespace std;
    int main()
    {
        int N;
        while(cin>>N)
        {
            double temp;
            char arr;
            stack<double> num;
            cin>>temp;
            num.push(temp);
            for(int i=1; i<N; i++)
            {
                cin>>arr>>temp;
                if(arr=='+')
                num.push(temp);
    
                if(arr=='-')
                num.push(-temp);
    
                if(arr=='*')
                {
                // 原理:1+2*3= 原是栈顶为2, 现将3与2相乘删除栈顶2,把乘积存为栈顶
                    temp=num.top()*temp;//将输入的数与栈中的栈顶数相乘
                    num.pop();//将原栈顶数删除
                    num.push(temp);//用temp替换为栈顶
                }
            }
            cin>>arr;//输入最后的“=”。
            double sum=0;
            while(!num.empty())
            {
                sum+=num.top();
                num.pop();
            }
            cout<<setprecision(2)<<fixed<<sum<<endl;
        }
    }
    

      

    作者:7oDo

    仅供参考,请勿抄袭。

    Hang Hang Hang !!!

  • 相关阅读:
    Maybe You Don't Know ! 如何比较两个引用是否指向同一个对象?
    记录一点项目心得...
    SharePoint 站点模版
    ObjectSpaces,See you in 2006...
    CLR如何实现线程同步
    Using 1.1, Waiting 2.0 & EasyThread
    在SharePoint中的Workflow引擎开发完成
    ViewState
    《WalkThrough WebPart 入门指南二》完成
    隐藏在.NET中的IoC?
  • 原文地址:https://www.cnblogs.com/Jie-Fei/p/9123330.html
Copyright © 2011-2022 走看看