配列要素の順次追加

■ 解き方の方針 outには、直前までの合計に次のinの要素を加えた値が追加されます。つまりout[i]はin[1]からin[i]までの累積和です。 ■ outを順に作る i in[i] tail(outの末尾) 追加する値 out − 3 − 3 {3} 2 2 3 3+2=5 {3, 5} 3 1 5 5+1=6 {3, 5, 6} 4 6 6 6+6=12 {3, 5, 6, 12} 5 5 12 12+5=17 {3, 5, 6, 12, 17} 6 4 17 17+4=21 {3, 5, 6, 12, 17, 21} ■ 問われている要素 配列の要素番号は1から始まるので、要素番号5は5番目の値 17 です。最後の21ではありません。 ■ 正解と誤答の見分け方 したがって、正解は カ です。

次の記述中の  に入れる正しい答えを,解答群の中から選べ。ここで, 配列の要素番号は1から始まる。

関数makeNewArray は,要素数 2 以上の整数型の配列を引数にとり,整数型の配列を返す関数である。
関数 makeNewArray を makeNewArray({3, 2, 1, 6, 5, 4}) として呼び出したとき、戻り値の配列の要素番号5の値は  となる。

[プログラム]
 ○整数型の配列: makeNewArray(整数型の配列:in)
 整数型の配列: out← {} // 要素数0の配列
 outの末尾に in[1]の値を追加する
 for (iを2から inの要素数まで1ずつ増やす)
  tail ← out[outの要素数]
  outの末尾に (tail + in[i]) の結果を追加する
 endfor
 return out

出典令和4年度 基本情報技術者試験 科目B サンプル問題 問3
ア
5
イ
6
ウ
9
エ
11
オ
12
カ
17
キ
21