poj 2694 逆波蘭表示式(遞迴)

2021-08-08 20:37:06 字數 714 閱讀 4983

題目:

逆波蘭表示式是一種把運算子前置的算術表示式,例如 普通的表示式2 + 3的逆波蘭表示法為+ 2 3。逆波蘭表示式的優點是運算子之間不必有優先順序關係,也不必用括號改變運算次序,例如(2 + 3) * 4的逆波蘭表示法為* + 2 3 4。本題求解逆波蘭表示式的值,其中運算子包括+ - * /四個。

input:

輸入為一行,其中運算子和運算數之間都用空格分隔,運算數是浮點數。

output:

輸出為一行,表示式的值。

可直接用printf(「%lf\n」, v)輸出表示式的值v。

sample inpu

* + 11.0 12.0 + 24.0 35.0

sample output

1357.000000

分析:

逆波蘭表示式的關鍵是掌握讀取表示式中的數值和運算子以及運算子的優先順序關係。先讀取第乙個字元,根據讀取到的運算子來決定下一步遞迴呼叫時的運算關係。如果讀取到的是值,則返回該值。

**:

#include

#include

#include//atof()的標頭檔案

using

namespace

std;

double expe()

}int main()

該題是遞迴呼叫的經典例題,其主要的實現過程就是層層讀取,層層運算,遇值返回。

逆波蘭表示式POJ 2694

逆波蘭表示式是一種吧運算子前置的算術表示式,例如普通的表示式2 3的逆波蘭表示為 23.逆波蘭表示式的優點是運算子之間不必有優先順序的關係,也不必有括號改變運算次序,例如 2 3 4的逆波蘭表示法為 2 3 4.本題求解的逆波蘭表示式的值。輸入資料 輸入為一行,其中運算子和運算數之間都用空格分隔,運...

POJ 2694逆波蘭表示式

問題描述 逆波蘭表示式是一種吧運算子前置的算術表示式,例如普通的表示式2 3的逆波蘭表示為 23.逆波蘭表示式的優點是運算子之間不必有優先順序的關係,也不必有括號改變運算次序,例如 2 3 4的逆波蘭表示法為 2 3 4.本題求解的逆波蘭表示式的值。輸入資料 輸入為一行,其中運算子和運算數之間都用空...

遞迴專題 POJ 2694 逆波蘭表示式

總時間限制 1000ms 記憶體限制 65536kb 描述 逆波蘭表示式是一種把運算子前置的算術表示式,例如普通的表示式2 3的逆波蘭表示法為 2 3。逆波蘭表示式的優點是運算子之間不必有優先順序關係,也不必用括號改變運算次序,例如 2 3 4的逆波蘭表示法為 2 3 4。本題求解逆波蘭表示式的值,...