總時間限制:
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定義在math.h中。
此題可使用函式遞迴呼叫的方法求解。
#include#include心若向陽,無言悲傷#include
double
calculation()
}int
main()
遞迴 逆波蘭表示式
中置表示式 1 2 3 前置 1 2 3 後置 1 2 3 這道題說逆波蘭表示式是前置就前置吧,題意就是輸入一行,其中運算子和運算數直接都用空格分開,輸出乙個表示式的值。思路就是用遞迴的思想,首先需要寫出逆波蘭表示式的定義 1 乙個數是乙個逆波蘭表示式,值為該數。2 運算子 逆波蘭表示式 逆波蘭表示...
(遞迴)逆波蘭表示式
例題 逆波蘭表示式 逆波蘭表示式是一種把運算子前置的算術表示式,例如普通的 表示式2 3的逆波蘭表示法為 2 3。逆波蘭表示式的優點是運算 符之間不必有優先順序關係,也不必用括號改變運算次序,例如 2 3 4的逆波蘭表示法為 2 3 4。本題求解逆波蘭表示式的值,其中運算子包括 四個。輸入輸入為一行...
波蘭表示式和逆波蘭表示式(棧)
中綴表示式如1 2 2 1 其運算子一般出現在運算元之間,因此稱為中綴表示式,也就是大家程式設計中寫的表達 式。編譯系統不考慮表示式的優先級別,只是對表示式從左到右進行掃瞄,當遇到運算子時,就把其前面的兩 個運算元取出,進行操作。為達到上述目的,就要將中綴表示式進行改寫,變為字尾表示式 如上面的表示...