応用情報技術者試験 令和5年秋期 問3
逆ポーランド表記法(後置記法)で表現されている式ABCD-×+において,A=16,B=8,C=4,D=2のときの演算結果はどれか。逆ポーランド表記法による式AB+は,中置記法による式A+Bと同一である。
ア:32 イ:46 ウ:48 エ:94
出典 IPA公開[過去問題]:https://www.ipa.go.jp/shiken/mondai-kaiotu/ps6vr70000010d6y-att/2023r05a_ap_am_qs.pdf
逆ポーランド記法とは
数式などの表記手法の1つです。主にコンピュータ向けに使うのですが、人間が使う数式とは違い、演算子が数式の後ろに来るのが特徴です。
例えば「10+5-3」を逆ポーランド記法で表記すると「1053-+」となります。
本問は逆ポーランドで表記されている式を計算しなければならないので、まずは人間が計算しやすいように式を表記しなおします。
逆ポーランド記法を表記しなおす場合は上図のように先頭の演算子を直前の非演算子の間に入れていきます。
本問では「A=16,B=8,C=4,D=2」とあるので、置き換えると「16+8×4-2」となります。これを四則演算のルールに従って計算すれば・・・と思うかもしれませんが、計算する際は先ほど表記しなおした過程の順番で計算する必要があります。
最初に計算できそうなのは「② C-D」であり、「4-2」なので、計算すると「② AB4-2×+」となるので「② AB2×+」となります。
次の③は「③ AB×2+」なので、「B×2」を計算します。「8×2」なので「16」となりますので、「③ A8×2+」は「③ A16+」になります。
最後の④は「④ A+16」なので、「16+16」を計算します。そうすると「32」になります。
正解は「ア:32」となります。
※これを全て表記しなおしてから当てはめ、「16+8×4-2」を計算すると「16+32-2」となり、「46」になってしまいます。逆ポーランド記法で書かれた数式を計算する場合は表記変換過程も考慮して計算して下さい。