Problem : STL——表达式求值
来源:互联网 发布:淘宝如何推广自己的店铺 编辑:程序博客网 时间:2024/06/07 01:51
话不多说,先上题目为敬~
Problem H: STL——表达式求值
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 2687 Solved: 1554
[Submit][Status][Web Board]
Description
给出一个表达式,求出其值。表达式中只存在 +、-、*、三种运算,我们假设表达式是正确的,
且不存在除数为零的情况。
Input
第一行输入一个正整数 n(1<=n<=30) ,表示有表达式 n 个数(每个数均小于100),表达式中只有数值(都是大于零的数)
和运算符(包括+、-、*、=四种运算符,其中 = 只在表达式最后,表示一个表达式输出结束,且整个表达式不存在空格)
Output
表达式的值(表达式的值不会超出 double 的范围并保留两位小数)
Sample Input
51*2*3*4*5=55-1-2+3+4=
Sample Output
120.009.00
HINT
使用STL的stack容易实现。
Append Code
了解STL中的stack后可以做出这道题目。分析stack中的各种函数如何满足题目要求即可。代码奉上~
#include<iostream>#include<stack>//remember top#include<algorithm>#include<iterator>#include<iomanip>using namespace std; int main(){ int n; while(cin>>n) { double a; char b; stack<double> d_sta; stack<char> c_sta; while(n--) { cin>>a>>b; if(!d_sta.empty()) { if(c_sta.top() == '-') a=-a; else if(c_sta.top()=='*') { a*=d_sta.top(); d_sta.pop(); } } d_sta.push(a); c_sta.push(b); } a=0; while(!d_sta.empty()) { a+=d_sta.top(); d_sta.pop(); } cout<<fixed<<setprecision(2)<<a<<endl; } return 0;}
0 0
- Problem H: STL——表达式求值
- Problem H: STL——表达式求值
- Problem : STL——表达式求值
- STL栈之表达式求值
- 表达式求值——栈
- NYOJ35——表达式求值
- 栈——表达式求值
- nyoj35——表达式求值
- LINTCODE——表达式求值
- 数据结构作业—表达式求值
- Polynomial Problem(hdu 1296 表达式求值)
- STL栈的应用之表达式求值
- 表达式求值(中缀表达式——后缀表达式——求值)
- 数据结构——栈—表达式求值
- 栈的应用——表达式求值
- 表达式求值——栈的应用
- 递归——Ny 305 表达式求值
- 栈应用——表达式求值
- 函数
- bzoj 2090: [Poi2010]Monotonicity 2 动态规划+线段树
- java list排序 -List.stream()
- Java之IO流
- 使用IntelliJ IDEA 15和Maven创建Java Web项目
- Problem : STL——表达式求值
- 581. Shortest Unsorted Continuous Subarray
- JDK中的多线程并发调用
- C/C++——模版相关知识
- 错误积累
- 柏林纪行(中):Node.js_Collaboration_Summit
- eclipse中svn的各种图标详解
- 在Unity中Debug.log和Print的区别
- Android N 使用FileProvider避免android.os.FileUriExposedException