問題
次の擬似言語プログラムを実行したとき、変数answerの値はいくつか。 整数型: answer ← 0 整数型: i ← 1 while (i ≦ 5) 整数型: j ← 1 while (j ≦ i) answer ← answer + 1 j ← j + 1 endwhile i ← i + 1 endwhile
選択肢
- 1ア 5
- 2イ 10
- 3ウ 15
- 4エ 25
正解
3. ウ 15
詳しい解説を見る解説を閉じる
解説
二重ループのトレース問題である。外側ループの各iに対し、内側ループはj=1からiまで回るため、answerへの加算はi回行われる。i=1で1回、i=2で2回、i=3で3回、i=4で4回、i=5で5回となり、合計は 1+2+3+4+5 = 15 でウが正解である。アの5は外側ループの回数だけを数えた値、エの25は内側ループが常に5回回る(条件をj≦5と誤読した)場合の5×5である。本問の核心は、内側ループの終了条件が固定値ではなく外側の変数iに依存している点であり、ここを見落とすと誤答する。このような三角形状に回るループの総実行回数 n(n+1)/2 は、バブルソートの比較回数などにも現れる頻出パターンであり、二重ループでは内側の条件式を最初に確認する習慣が重要である。
一問一答
科目A 180問+科目B 60問