ITパスポート 令和5年度64

問題

テクノロジ系

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

選択肢

  • calcX ← calcX × n
  • calcX ← calcX + 1
  • calcX ← calcX + n
  • calcX ← n

解説

正解:

概要

この問題は、1からmaxまでの整数の合計を求める関数の処理を読み取り、ループ処理の中でどの計算を行えば正しく合計値を求められるかを理解しているかを問う問題です。

正解の理由

プログラムでは変数calcXを0で初期化し、nを1からmaxまで1ずつ増やしながら繰り返し処理を行います。1からmaxまでの合計を求めるには、現在の合計値calcXに毎回nを加算していく必要があります。そのため「calcX ← calcX + n」とするウが正解になります。

各選択肢の解説

ア(×): calcX ← calcX × n は現在の値にnを掛ける処理であり、合計ではなく積を計算する処理になります。このプログラムは1からmaxまでの整数の総和を求めるものなので、掛け算では正しい結果にならず誤りです。

イ(×): calcX ← calcX + 1 は毎回1だけ加算する処理になります。この場合はループ回数分だけ1を足すだけなので結果はmaxになります。1からmaxまでの合計値にはならないため誤りです。

ウ(〇): calcX ← calcX + n は現在の合計値にnを加える処理です。nが1からmaxまで増えていくため、1+2+3+…+maxという計算が行われ、1からmaxまでの整数の総和を求めることができます。

エ(×): calcX ← n はcalcXにnを代入する処理であり、それまでの計算結果が毎回上書きされてしまいます。最終的にはmaxの値だけが残るため、合計を求める処理にはならず誤りです。

ポイント

合計を求めるプログラムでは「合計値 = 合計値 + 現在の値」という形で加算を繰り返す処理が基本になります。

関連用語