令和5年度 ITパスポート試験 問64
テクノロジ/アルゴリズム関数 sigma は,正の整数を引数 max で受け取り,1から max までの整数の総和を戻り値とする。プログラム中の a に入れる字句として,適切なものはどれか。 〔プログラム〕 ○整数型: sigma(整数型: max) 整数型: calcX ← 0 整数型: n for (n を 1 から max まで 1 ずつ増やす) [ a ] endfor return calcX
出典:令和5年度 ITパスポート試験 問64
- アcalcX ← calcX × n
- イcalcX ← calcX + 1
- ウcalcX ← calcX + n
- エcalcX ← n
正解:ウ
解説
calcX は合計を入れる変数で,最初は 0 です。繰り返しの中で n が 1,2,…,max と増えていくので,毎回 calcX に n を足していけば,1 から max までの総和になります。たとえば max が 3 なら 0+1+2+3=6 です。したがって a には calcX ← calcX + n が入ります。
選択肢ごとの解説
- ア誤り。n を掛けていくと,総和ではなく階乗(積)になり,しかも初期値が 0 なのでずっと 0 のままです。
- イ誤り。毎回 1 を足すだけでは,繰り返した回数(max)になってしまい,総和になりません。
- ウ正しい。毎回 n を足し込むことで,1 から max までの総和が calcX に求まります。
- エ誤り。n を代入するだけでは,最後の n(=max)しか残らず,総和になりません。