1696 逆波蘭表示式

2021-08-16 04:45:12 字數 624 閱讀 8387

逆波蘭表示式是一種把運算子前置的算術表示式,例如普通的表示式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

using

namespace std;

char s[

110];

double

fx()

}else

return

atof

(s);

}int

main

()

1696 逆波蘭表示式

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

1696 逆波蘭表示式 遞迴(atof)

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

波蘭表示式 逆波蘭表示式

中綴表示式是最常見的運算表示式,如 3 5 2 6 1 波蘭表示式又稱為字首表示式,它是由中綴表示式經過一定的方式轉換來的 比如中綴表示式為 3 5x 2 6 1 對應的字首表示式為 3 x 5 2 6 1 對於中綴表示式從右向左遍歷轉換為字首表示式,中途要是用棧進行儲存 轉換規則如下 波蘭表示式 ...