次の命令を持ったスタックマシンを想定する。
push x スタックにデータxをプッシュする。
dup スタックの最上部のデータを複製してスタックにプッシュする。
swap スタックの最上部の2つのデータの位置を交換する。
add スタックから2つのデータをポップし,その和をスタックにプッシュする。
sub スタックから2つのデータをポップし,その差をスタックにプッシュする。
(スタック最上部2番目のデータから最上部のデータを引く。)
mul スタックから2つのデータをポップし,その積をスタックにプッシュする。
div スタックから2つのデータをポップし,その商をスタックにプッシュする。
(スタック最上部2番目のデータを最上部のデータで割る。)
このとき,(a-b)2/(c+a-b) を計算した結果をスタック最上部に残す最も少ないプログラムの命令数はいくつか。
① 7 ② 8 ③ 9 ④ 10 ⑤ 11
答え
④
解説
XXX