總時間限制:
1000ms
記憶體限制:
65536kb
描述
波蘭表示式是一種把運算子前置的算術表示式,例如普通的表示式2 + 3的波蘭表示法為+ 2 3。波蘭表示式的優點是運算子之間不必有優先順序關係,也不必用括號改變運算次序,例如(2 + 3) * 4的波蘭表示法為* + 2 3 4。本題求解波蘭表示式的值,其中運算子包括+ - * /四個。
輸入輸入為一行,其中運算子和運算數之間都用空格分隔,運算數是浮點數。
輸出輸出為一行,表示式的值。
可直接用printf("%f\n", v)輸出表示式的值v。
樣例輸入
* + 11.0 12.0 + 24.0 35.0
樣例輸出
1357.000000
提示可使用atof(str)把字串轉換為乙個double型別的浮點數。atof定義在cstdlib中。
**計算概論05
讀入時應將字串倒著讀入,遇到乙個數字就入棧,遇到乙個符號就入棧,再從數字棧頂彈出兩個元素,符號棧頂彈出乙個元素,並進行運算,該題難點主要在題意理解上
(也可用遞迴方式求解)
#include
#include
#include
#include
using
namespace std;
string
s[10005
];stack<
double
>mat;
stackch;
intmain()}
printf
("%.6lf"
,mat.
top());
}
OpenJudge逆波蘭表示式C C
描述 逆波蘭表示式是一種把運算子前置的算術表示式,例如普通的表示式2 3的逆波蘭表示法為 2 3。逆波蘭表示式的優點是運算子之間不必有優先順序關係,也不必用括號改變運算次序,例如 2 3 4的逆波蘭表示法為 2 3 4。本題求解逆波蘭表示式的值,其中運算子包括 四個。輸入輸入為一行,其中運算子和運算...
Openjudge 2694 逆波蘭表示式
這是波蘭表示式,題目中叫它是逆波蘭式。這個題的話,我們用遞迴求解,首先理解一下波蘭表示式,就是將運算子前移了。像是二叉樹的遍歷一樣,前序遍歷就是波蘭式,中序遍歷就是中綴表示式,後序遍歷就是逆波蘭表示式。我們讀入一項之後就進行處理,這裡的讀入因為題目中給出了空格,也就是一次讀入的結束,所以我們每次讀入...
OpenJudge 2694 逆波蘭表示式
描述 逆波蘭表示式是一種把運算子前置的算術表示式,例如普通的表示式2 3的逆波蘭表示法為 2 3。逆波蘭表示式的優點是運算子之間不必有優先順序關係,也不必用括號改變運算次序,例如 2 3 4的逆波蘭表示法為 2 3 4。本題求解逆波蘭表示式的值,其中運算子包括 四個。輸入 輸入為一行,其中運算子和運...