令和5年度 秋期 応用情報技術者試験 午前 問3

逆ポーランド表記法(後置記法)で表現されている式 ABCD−×+\text{ABCD}-\times+ において, A=16,B=8,C=4,D=2\text{A}=16, \text{B}=8, \text{C}=4, \text{D}=2 のときの演算結果はどれか。逆ポーランド表記法による式 AB+\text{AB}+ は, 中置記法による式 A+B\text{A}+\text{B} と同一である。

解答・解説

正解: ア. 32

逆ポーランド表記法(後置記法)は、演算子を被演算子(オペランド)の後ろに置く記法です。この記法を用いた式は、スタックを用いて左から順に処理することで計算できます。

与えられた式 ABCD−×+\text{ABCD}-\times+ に各値を代入すると、以下のようになります。
16842−×+16\quad 8\quad 4\quad 2\quad -\quad \times\quad +

これを左から順に処理します。

  1. 数値 16,8,4,216, 8, 4, 2 が連続して現れるため、順番にスタックに積みます。
  2. 次に演算子 −- が現れます。スタックから 22 と 44 を取り出し、4−2=24 - 2 = 2 を計算し、結果の 22 をスタックに積みます。
  3. 次に演算子 ×\times が現れます。スタックから 22 と 88 を取り出し、8×2=168 \times 2 = 16 を計算し、結果の 1616 をスタックに積みます。
  4. 最後に演算子 ++ が現れます。スタックから 1616 と 1616 を取り出し、16+16=3216 + 16 = 32 を計算します。

最終的な演算結果は 32 となり、正解は「ア」です。

各選択肢の解説

  • ア (32): 正解です。
  • イ (46): 式を中置記法で A+B×C−DA+B\times C-D (16+8×4−2=4616+8\times4-2 = 46)と誤って解釈した場合の演算結果です。
  • ウ (48): 式を (A+B)×(C−D)(A+B)\times(C-D) ((16+8)×(4−2)=48(16+8)\times(4-2) = 48)などと、演算子の適用順序を誤って解釈した場合の演算結果です。
  • エ (94): 計算順序や演算子の適用箇所を複数誤って導かれた値です。

Spineチーム