令和5年秋期試験問題 午前問3
問3解説へ
逆ポーランド表記法(後置記法)で表現されている式ABCD-×+において,A=16,B=8,C=4,D=2のときの演算結果はどれか。逆ポーランド表記法による式AB+は,中置記法による式A+Bと同一である。
- 32
- 46
- 48
- 94
広告
解説
逆ポーランド表記法は、通常の中置記法とは異なり、演算子(+、-、×、÷)を2つの項の後ろに記述する数式の表現方法です。例えば、中置記法の「1+2」は、逆ポーランド表記法で「12+」と記述されます。
逆ポーランド表記法による数式は、コンピュータがそのように処理するように、スタック(後入れ先出しのデータ構造)を使って以下の手順で答えを求めることができます。
【別解】
式中で最も左にある演算子を起点にして、中置記法の式に戻し、値を代入して演算します。
16+8×(4-2)
=16+8×2
=16+16=32
逆ポーランド表記法による数式は、コンピュータがそのように処理するように、スタック(後入れ先出しのデータ構造)を使って以下の手順で答えを求めることができます。
- 数式の左側から値を1つずつスタックに積んでいく
- 演算子が現れたら、スタックから上2つの値を取り出して演算し、その結果をスタックに積む
- 式を最後まで評価し、スタックに残っている値が答えとなる
- Aを積む [16]
- Bを積む [16, 8]
- Cを積む [16, 8, 4]
- Dを積む [16, 8, 4, 2]
- -なので、4、2を取り出し、4-2の結果である2を積む [16, 8, 2]
- ×なので、8、2を取り出し、8×2の結果である16を積む [16, 16]
- +なので、16、16を取り出し、16+16の結果である32を積む [32]
【別解】
式中で最も左にある演算子を起点にして、中置記法の式に戻し、値を代入して演算します。
- "CD-"を"C-D"にする
- "B(C-D)×"を"B×(C-D)"にする
- "AB×(C-D)+"を"A+B×(C-D)"にする
16+8×(4-2)
=16+8×2
=16+16=32
広告