アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20220612 実施分 問10
正の整数Mに対して,次の二つの流れ図に示すアルゴリズムを実行したとき,結果xの値が等しくなるようにしたい。aに入れる条件として,適切なものはどれか。
左の流れ図: 開始 → x ← 1 → ループ端(上)「演算 n:M,-1,1」 → x ← (x × n) → ループ端(下)「演算」 → 終了。注記「ループ端の繰返し指定は,変数名:初期値,増分,終値を示す。」
右の流れ図: 開始 → x ← 1 → n ← 1 → x ← (x × n) → n ← (n + 1) → 判定(ひし形)「a」。No は x ← (x × n) の直前に戻る,Yes は終了へ。
答えを選ぶ
出典:基本情報技術者試験 科目A免除 修了試験 20220612 実施分 問10(問題文は IPA の公開問題。解説は当サイト作成)
答えと解説を見る
正解:ウ
覚える知識
繰返し流れ図の終了条件の読解(後判定ループ)
後判定ループは、本体を実行した後に条件を判定するため、終了条件には最後の反復の次の値を用いる。
この問題で必要なこと
左は階乗M×(M-1)×…×1。右はnを1から増やしながら掛け、n>Mで終了させると1〜Mの積になり等しい。
ひっかけ
n>M-1やn<Mなど境界を1つずらした条件で回数の誤りを誘う。
この知識の出題:本試験系 0 回・免除試験 3 回(公開問題での観測値)