いぬぼきアプリ登場!詳しくはこちら

ITパスポート模擬試験~令和5年度【問64】~

関数 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

→毎回上書きされる

→最後の値が入るだけ

以上より、正解はウ.となります。

間違えた人はこちらで復習

アルゴリズムとプログラミング2~擬似言語~

※本問は自分で考えて解く応用的な問題なので、用語の丸暗記のみでは対応できません。