FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER
基本情報技術者の問題解説:次のプログラムを実行したとき、戻り値はどれか。配列pの添字は…
問題
次のプログラムを実行したとき、戻り値はどれか。配列pの添字は0から始まる。
整数型の配列: a ← {3, 1, 4, 1, 5}
整数型の配列: p ← {0, 0, 0, 0, 0, 0}
整数型: i
for (i を 1 から aの要素数 まで 1ずつ増やす)
p[i] ← p[i - 1] + a[i]
endfor
return p[4] - p[1]- ア 5
- イ 6(正解)
- ウ 7
- エ 9
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲
正解と解説
正解:6
見る場所:p[i]はa[1]からa[i]までの累積和であり、p[4]-p[1]はa[2]〜a[4]の和になります。
| i | p[i] |
|---|---|
| 1 | 3 |
| 2 | 4 |
| 3 | 8 |
| 4 | 9 |
| 5 | 14 |
処理の追い方:p[4]-p[1]=9-3=6で、対象は1+4+1です。
間違えやすい点:p[4]だけを見ると9になります。区間和では左端の直前の累積和を引きます。
応用の考え方:累積和配列では、p[0]=0を置くと区間の開始直前までの和を簡単に引けます。p[r]-p[l-1]の形を意識すると、範囲を間違えにくくなります。
この問題について
公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。