問題
次の擬似言語プログラムの実行結果として、変数resultの値はいくつか。 整数型: result ← 1 整数型: base ← 3 整数型: i ← 1 while (i ≦ 4) result ← result × base i ← i + 1 endwhile
選択肢
- 1ア 12
- 2イ 27
- 3ウ 81
- 4エ 243
正解
3. ウ 81
詳しい解説を見る解説を閉じる
解説
正解はウ。resultの初期値1に対して、ループ内でbase=3を4回掛けるので、3の4乗を計算するプログラムである。トレースすると、i=1でresult=1×3=3、i=2でresult=3×3=9、i=3でresult=9×3=27、i=4でresult=27×3=81となり、i=5で条件i≦4が偽となってループを抜ける。よってresult=81である。アの12は3×4と乗算・累乗を混同した誤り、イの27は3回しか掛けなかった場合(3の3乗)、エの243は5回掛けた場合(3の5乗)の値である。基本情報の科目Bでは、累乗をループで実現するパターンが頻出であり、「結果の初期値を1にして指数の回数だけ掛ける」こと、ループ回数を1回多く・少なく数えるoff-by-oneエラーに注意することがポイントである。
一問一答
科目A 180問+科目B 60問