b088: 前置表達式 (pref)
Tags :
Accepted rate : 8人/11人 ( 73% ) [非即時]
評分方式:
Tolerant

最近更新 : 2023-06-14 13:53

Content

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

  • 表達式 :: 數字 | 運算號 表達式 表達式
  • 數字 :: 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

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

Input

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

Output

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

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

最後的一個0。

Sample Input #1
+98
-5*79
0
Sample Output #1
17
-58
0
測資資訊:
記憶體限制: 64 MB
不公開 測資點#0 (10%): 1.0s , <1K
不公開 測資點#1 (10%): 1.0s , <1K
不公開 測資點#2 (10%): 1.0s , <1M
不公開 測資點#3 (10%): 1.0s , <1M
不公開 測資點#4 (10%): 1.0s , <1M
不公開 測資點#5 (10%): 1.0s , <1M
不公開 測資點#6 (10%): 1.0s , <10M
不公開 測資點#7 (10%): 1.0s , <10M
不公開 測資點#8 (10%): 1.0s , <10M
不公開 測資點#9 (10%): 1.0s , <10M
Hint :
  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 個運算符號

Tags:
出處:
MOIJ 2023 [管理者:
lamkinun@gma... (Kinda Lam)
]


ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」