アルゴリズムとプログラミング

基本情報技術者試験ループ」の問題

アルゴリズムとプログラミングアルゴリズムとプログラミング計算問題難易度:normal
次の擬似言語の内側の文「cnt ← cnt + 1」が実行される回数はどれか。
○整数型: count()
  整数型: cnt ← 0
  整数型: i, j
  for (i を 1 から 5 まで 1 ずつ増やす)
    for (j を i から 5 まで 1 ずつ増やす)
      cnt ← cnt + 1
    endfor
  endfor
  return cnt
5 回
150 回
25 回
15 回
正解
15 回

内側 for の開始が j=i のため、i が増えるほど回数が減る。i=1〜5 でそれぞれ 5,4,3,2,1 回となり合計 15 回であるため エが正しい。

?選択肢ごとの解説

ア ×外側ループの回数 5 だけを数え、内側の繰り返しを集計しなかった誤りである。
イ ×実行回数 15 の桁を取り違え、または余分に 10 倍して 150 回とした桁の誤りである。
ウ ×内側ループを常に 1 から 5 まで(j=1 開始)と誤読し 5×5=25 とした、開始値 j=i の見落としである。
エ ○内側 for の開始が j=i のため、i が増えるほど回数が減る。i=1〜5 でそれぞれ 5,4,3,2,1 回となり合計 15 回であるため エが正しい。

くわしく

内側ループの開始値が外側変数 i に依存する三角形状のループでは、実行回数は等差数列 n+(n-1)+…+1 となる。各 i での内側回数を個別に数えて合算する必要がある。

本番での押さえどころ

試験のコツ

i ごとに『内側が何回回るか』を縦に書き出し、最後に合計する。

覚え方

『三角ループは 1 から n の和』=n(n+1)/2 と関連づける(5×6/2=15)。

よくある誤り

内側の開始値を固定と勘違いし n×n と数えるミスが最も多い。

アルゴリズムとプログラミングの他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-b-algo-0012

【基本情報技術者試験】ループの問題 — 解答・解説|ukamiru 過去問