Advertisement

逆波兰表达式(递归与自调用函数的核心技术)

阅读量:

逆波兰表达式(基本算法之递归)

总时间限制: 1000ms 内存限制: 65536kB
本题要求计算逆波兰表达式的值。
在逆波兰表示法中, 运算符位于操作数之前, 这种表示法的一个显著特点是去除了括号, 并且保证了运算顺序仅取决于运算符之间的相对位置关系。
例如, 在逆波兰表示法中, 普通表达式2 + 3被表示为+ 2 3, 而普通表达式(2 + 3) 4则被表示为 + 2 3 4。
输入由一行数据构成, 其中运算符和运算数之间都使用空格分隔, 运算数是浮点数形式存在。
输出结果以一行数据形式呈现, 输出结果应保留至少六位小数以确保精度。
可直接用printf语句将计算结果精确到小数点后六位进行显示打印。
提示: 可采用atof函数将字符串转换为双精度浮点数值类型; atof函数定义于math.h头文件中; 可采用递归调用的方式实现此题求解。

为了实现这个过程并不需要一次性将一行数据加载进来而是可以逐步获取每一个操作数或操作符随后按照逆波兰表达式的规则来进行计算这样处理起来会更加简便

复制代码
    #include <iostream>
    #include<stdio.h>
    #include<math.h>
    using namespace std; 
    //http://noi.openjudge.cn/c

全部评论 (0)

还没有任何评论哟~