切換
舊版
前往
大廳
主題

ZeroJudge - a017: 五則運算 解題心得

Not In My Back Yard | 2018-10-21 16:31:41 | 巴幣 0 | 人氣 1994

題目連結:


題目大意:
給定一個運算式,有加、減、乘、除、取餘數的運算子( +  -  *  /  % )。

運算子和運算元中間會有空格分開,而運算元為 0 ~ 2 ^ 31 - 1 的整數。

註:取餘數的運算優先度等同於乘、除。


範例輸入:
2 + 3 * 4
2 * ( 3 + 4 ) * 5



範例輸出:
14
70



解題思維:
此題類似,只是多了「%」運算子。而且還要把運算式的值算出來。

算出來的方法並不複雜,例如有一後序運算式為234+5 * * 。

一開始有一個2,先放入陣列或堆疊裡。

再來是3,也放到陣列或堆疊裡。

再來是4,一樣要儲存。

接下來有一個「+」,取陣列或堆疊裡的末端兩個數字做運算。然後把做完運算的值放回陣列或堆疊裡。

,同理。

「*」,同理,拿兩個數字。把新的數字放回去。

「*」,同理。

最後,陣列或堆疊裡會剩下唯一一個數字,即是運算式的結果。

其他運算式也是同樣的方法。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作