ITパスポート試験
令和5年 第64問
問64
関数sigmaは、正の整数を引数maxで受け取り、1からmaxまでの整数の総和を戻り値とする。プログラム中の( a )に入れる字句として、適切なものはどれか。
[プログラム]
○整数型: sigma(整数型: max)
整数型: calcX ← 0
整数型: n
for(nを1からmaxまで1ずつ増やす)
( a )
endfor
return calcX
calcX ← calcX × n | |
calcX ← calcX + 1 | |
calcX ← calcX + n | |
calcX ← n |
(令和5年 ITパスポート試験 第64問 テクノロジ系/アルゴリズムとプログラミング)
解説
(ウ)calcX ← calcX + n
この問題の正解率:35.1%(普通)
この問題の正解率:35.1%(普通)
解説と計算イメージ
calcX は 0 で初期化されます。
ループ(for n = 1 to max)の各回で、次のように値が更新されます:
n = 1: calcX = 0 + 1 = 1
n = 2: calcX = 1 + 2 = 3
n = 3: calcX = 3 + 3 = 6
...
n = max: calcX = (1 + 2 + … + (max−1)) + max
こうして 1 から max までのすべての整数が加算されます。
他の選択肢は次のように間違っています。
ア:×(掛け算)なら「階乗」になってしまう。
イ:+1 は最大値に関係なく max 回だけ増えるので不正解。
エ:← n は毎回上書きするだけで、最後の calcX が max になってしまう。

【間違いやすいポイント】
「掛け算だと何が計算されるのか?」を想像し、「総和」ではなく「階乗」になることに注意。
ループで何を蓄積するかを常に意識し、累算や上書きの違いを正しく理解することが重要です。
選択中のリスト
令和5年テクノロジ系過去問一覧