#P1087. 前置表達式 (pref)

前置表達式 (pref)

題目描述

有一種運算式的表達方式是把運算符號放在兩個參數前面, 這種表達式稱為前置表達式。假設我們現在要計算一個一位數字的前置表逹式, 這個表達式內每個數字參數都只有一個位。具體來說, 我們可以用以下的方式來定義這種運算表逹式:

  • 表達式 :: 數字 | 運算號 表達式 表達式
  • 數字 :: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
  • 運算號 :: * | / | + | -

注: 上面表述中, 符號 "|" 代表"或"

我們現需要找出表這個達式的最終運算值。雖然運算式中, 每個數字都只有一個位, 但運算的結果則不限於只有一個位。另外, 其中的除法是整數除法, 即 8 ÷ 3 = 2

表達式意思結果
+121+23
*9+429 * (4 + 2)54
+9*429 + (4 * 2)17
/+98-42(9 + 8) / (4 - 2)8

請編寫一程式, 通過標準輸入輸入若干個前置表達式, 並輸每個表達式的最終結果。

輸入格式

請編寫一程式, 通過標準輸入輸入若干個前置表達式, 並輸每個表達式的最終結果。

輸出格式

對應於每個表逹式, 輸出其相應的值, 每行輸出一個值。

最後一行應輸一個0, 它對應於輸入數據中

最後的一個0。

Samples

+98
17
-5*79
-58
0
0

提示

  1. +98: 9 + 8 = 17
  2. -5*79: 5 − ( 7 ×9 ) = − 58
  3. 0: 0 (輸入完結)

已知在運算過程中, 所有過渡或最終結果的數值在 [−109, 109] 範圍內。且不會出現除算為0的情況。

對於每組測試數據:

最多有 20 個表達式

每個表達式最多有 1,000,000 個運算符號

每個表達式無論是其最終答案或運算過程中的值均在

[−1,000,000,000, 1,000,000,000] 範圍內

運算過程中不會有除以外 0 (即除數為 0) 的情況出現

另外:

有20分的數據中最多有1 個運算符號

有50分的數據(包括上面的20分在內), 最多有5,000 個運算符號

有60分的數據(包括上面在內), 最多有100,000 個運算符號

有70分的數據(包括上面在內), 最多有300,000 個運算符號

有80分的數據(包括上面在內), 最多有500,000 個運算符號

原始資料

  • Zero1 題號:b088
  • Hydro 題號:Z1088
  • Locale:zh_TW
  • Display:open