FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER
基本情報技術者の問題解説
問題
次のプログラムを実行したとき,戻り値はどれか。配列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
正解: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]の形を意識すると,範囲を間違えにくい。
この問題について
公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。