CCF NOI1121 逆波兰表达式
来源:互联网 发布:宜信大数据 编辑:程序博客网 时间:2024/05/04 19:52
问题链接:CCF NOI1121 逆波兰表达式。
时间限制: 1000 ms 空间限制: 262144 KB
题目描述
逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的逆波兰表示法为* + 2 3 4。本题求解逆波兰表达式的值,其中运算符包括+ - * /四个。
输入
输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。
输出
输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。
样例输入
* + 11.0 12.0 + 24.0 35.0
样例输出
1357.000000
数据范围限制
1<a<32768
提示
可使用atof(str)把字符串转换为一个double类型的浮点数。atof定义在stdlib.h中。
问题分析
这是一个计算问题。
逆波兰表达式通常用堆栈来处理,递归调用与堆栈具有同样的效果。
(略)
要点详解
- 用递归函数来处理逆波兰表达式。
参考链接:(略)。
100分通过的C语言程序:
#include <stdio.h>#include <stdlib.h>#define N 32char a[N];double calculate(){ scanf("%s", a); if(a[0] == '+') return calculate() + calculate(); else if(a[0] == '-') return calculate() - calculate(); else if(a[0] == '*') return calculate() * calculate(); else if(a[0] == '/') return calculate() / calculate(); else return atof(a);}int main(void){ printf("%lf\n", calculate()); return 0;}
0 0
- CCF NOI1121 逆波兰表达式
- 波兰、逆波兰表达式
- 波兰表达式和逆波兰表达式
- 波兰表达式和逆波兰表达式
- 逆波兰表达式
- 逆波兰表达式
- 逆波兰表达式
- 逆波兰表达式
- 逆波兰表达式rpn
- 逆波兰表达式
- 逆波兰表达式
- 逆波兰表达式实验
- 逆波兰表达式
- 逆波兰表达式
- 逆波兰表达式
- 逆波兰表达式
- 逆波兰表达式
- 逆波兰表达式
- TensorFlow1:windows下安装TensorFlow
- BP神经网络算法与实践
- CF Round #412( Div.2) Success Rate
- 卷积算子计算方法(卷积运算)
- exploit-db上的WordPress和JoomlaP相关
- CCF NOI1121 逆波兰表达式
- UVA, 10104 Euclid Problem
- Java泛型详解
- Unity笔记-打飞碟游戏
- 学习
- 对Mac下Python添加路径PATH的总结
- 补二:5-5
- Java 使用 FTP 实现大文件上传下载
- Storm学习笔记(一)