関数 sigma は,正の整数を引数 max で受け取り、1から max までの整数の総和を戻り値とする。プログラム中のaに入れる字句として、適切なものはどれか。

- ア. calcX ← calcX × n
- イ. calcX ← calcX + 1
- ウ. calcX ← calcX + n
- エ. calcX ← n
【答え】ウ
【解説】
この問題は、1からmaxまでの整数の合計(1 + 2 + 3 + … + max)を計算する関数sigmaにおいて、繰り返し処理の中でどのように加算するかを問うものです。つまり、このループ内で calcX に nをどんどん加えていく必要があります。
確認例
具体的な数字を使って、見ていきましょう。
max = 4 のとき:0 + 1 + 2 + 3 + 4 = 10
初期:calcX = 0
n=1 → calcX = 0 + 1 = 1
n=2 → calcX = 1 + 2 = 3
n=3 → calcX = 3 + 3 = 6
n=4 → calcX = 6 + 4 = 10
→つまり、calcXの値(それまでの合計値)にnの値を加算するのを繰り返せばいいので、aに入れる字句は「calcX ← calcX + n」となります。
各選択肢の解説
ア. calcX ← calcX × n
→0 × 1 × 2 × 3 × 4 = 0
→積の計算になる
イ. calcX ← calcX + 1
→0 + 1 + 1 + 1 + 1 = 4
→毎回1を足すだけ(総和が max になってしまう)
ウ. calcX ← calcX + n
→0 + 1 + 2 + 3 + 4 = 10
→ ⭕ 1からmaxまでの総和(等差数列の和)
エ. calcX ← n
→毎回上書きされる
→最後の値が入るだけ
以上より、正解はウ.となります。
※本問は自分で考えて解く応用的な問題なので、用語の丸暗記のみでは対応できません。

