問題
次の擬似言語プログラムを実行したとき、変数resultの値はいくつか。 整数型の配列: data ← {2, 3, 5, 7, 11} 整数型: result ← data[1] 整数型: i ← 2 while (i ≦ 5) result ← result × data[i] i ← i + 1 endwhile
選択肢
- 1ア 28
- 2イ 210
- 3ウ 2310
- 4エ 30030
正解
3. ウ 2310
詳しい解説を見る解説を閉じる
解説
このプログラムはresultをdata[1]=2で初期化し、2番目以降の要素を順に掛け合わせて配列全要素の積を求める累積積の処理である。途中式を追うと、2×3=6、6×5=30、30×7=210、210×11=2310となり、result=2310でウが正解である。アの28は積ではなく全要素の和(2+3+5+7+11)を求めた値、イの210は最後の要素11を掛け忘れた4要素までの積、エの30030は2310×13で次の素数13まで余分に掛けた値であり、いずれもループ範囲の読み誤りや演算の混同による誤答である。頻出ポイント:累積積は累積和と並ぶ基本パターンであり、初期値が0ではなく先頭要素(または1)である点に注意する。階乗の計算も同じ構造であり、初期値と終了添字のトレースが得点の鍵となる。
一問一答
科目A 180問+科目B 60問