アルゴリズムとプログラミング
ITパスポート試験「アルゴリズムとプログラミング」の問題
関数 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
正解
ウ.calcX ← calcX + n
総和は『これまでの合計に今のnを足す』累積加算で求まる。calcXを0から始めnを順に加えるcalcX ← calcX + n により,1からmaxまでの和が正しく蓄積される。sigma(5)=15となりウが正しい。
?選択肢ごとの解説
ア ×calcX ← calcX × n は累積積(階乗的)になり,初期値0のため常に0を返す。sigma(5)=0×1×2×3×4×5=0で総和にならない。
イ ×calcX ← calcX + 1 はnの値に関係なく毎回1だけ加えるので,ループ回数(=max)を返すだけ。sigma(5)=5で総和にならない。
ウ ○総和は『これまでの合計に今のnを足す』累積加算で求まる。calcXを0から始めnを順に加えるcalcX ← calcX + n により,1からmaxまでの和が正しく蓄積される。sigma(5)=15となりウが正しい。
エ ×calcX ← n は加算せず代入なので,毎回上書きされ最後のnすなわちmaxだけが残る。sigma(5)=5で総和にならない。
アルゴリズムとプログラミングの他の問題
この問題の「深掘り・誤答の完全解説・試験のコツ・覚え方」はアプリで。
無料ではじめる →ITパスポート試験の全問を、一問ごとにAIの8-ways解説つきで。SRS暗記カード・全真模試・弱点診断まで。まずは無料で。
ukamiru 過去問 · ITパスポート試験 · itpass-r5k-q64
