FE Study
FE Study メニュー

学習記録はこのブラウザー内に保存されます。

ホーム問題を解く
ログイン不要・無料で学習

ONE QUESTION, ONE STEP

累積和を学ぼう

選んで、確かめて、理解する。焦らず進めましょう。

科目Bアルゴリズム標準
QUESTION 54

次の関数rangeSumで累積和prefixを作る。a[3]からa[5]までの合計を返すため、空欄に入る式はどれか。aとprefixの要素番号はどちらも1から始まり、forの両端を含む。prefixの要素数はaより1多い。 ○ 整数型: rangeSum() 整数型の配列: a ← {2, 5, 1, 4, 6, 3} 整数型の配列: prefix ← {0, 0, 0, 0, 0, 0, 0} 整数型: i for (i を 1 から 6 まで 1 ずつ増やす) prefix[i + 1] ← prefix[i] + a[i] endfor return 【空欄】

出典:本サイト オリジナル教材(2026年)

本サイトで独自に作成。IPAの試験問題からの転載ではありません。

公開日:

解答を一つ選んでください

選択肢を選んで、答え合わせをしましょう。

回答せずに正解・解説を確認する

正解:イ prefix[6] - prefix[3]

この表示だけでは、回答数や正答率は変わりません。

解説

prefix[k+1]にはa[1]からa[k]までの合計が入ります。a[3]〜a[5]の合計は、a[1]〜a[5]からa[1]〜a[2]を引けばよいのでprefix[6] − prefix[3]です。prefixは{0,2,7,8,12,18,21}となり、18 − 7 = 11で、1+4+6とも一致します。

ア

a[2]〜a[4]の合計に対応し、対象区間が一つずれています。

イ

末尾a[5]までの累積和から、開始a[3]の手前までを引いています。

ウ

a[2]〜a[5]の合計になり、a[2]=5を余分に含みます。

エ

a[3]〜a[4]の合計になり、a[5]=6が抜けます。

関連知識

この定義では区間a[L]〜a[R]の合計はprefix[R+1] − prefix[L]です。prefix[k]がどこまでの合計を表すかは定義によって変わるため、添字の式を丸暗記しないようにします。

間違えやすいポイント

prefix[1]=0という番兵用の要素があるため、aとprefixで同じ要素番号が同じ終点を表すわけではありません。

覚え方

終点までの合計から、始点の手前までを引く。

実務での意味

毎日の売上から多くの期間合計を求めるような場合、前計算後は差を取るだけで集計できます。

解説:本サイト編集部によるオリジナル文章

この問題の前後に、アルゴリズムの基礎知識ガイドで、 仕組み・比較・解き方を確認できます。 手順を確かめたい方は連続達成回数を求める擬似言語を、一行ずつ追跡するの実習へ。 この問題の誤りを報告する(GitHub)。問題IDとURLを入力した下書きが開きます。自動投稿は行いません。 投稿は公開されるため、氏名・住所・メールアドレス・学習記録は記入しないでください。 詳しくはお問い合わせ窓口をご覧ください。