アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20191208 実施分 問10
正の整数 M に対して,次の二つの流れ図に示すアルゴリズムを実行したとき,結果 x の値が等しくなるようにしたい。a に入れる条件として,適切なものはどれか。
左の流れ図: 開始 → x←1 → ループ端(上)「演算 / n:M,−1,1」→ x←(x×n) → ループ端(下)「演算」→ 終了。注記「ループ端の繰返し指定は,変数名:初期値,増分,終値を示す。」
右の流れ図: 開始 → x←1 → n←1 → x←(x×n) → n←(n+1) → 判断「a」(Yes: 終了,No: x←(x×n) の手前へ戻る)。
- ア n<M
- イ n>M−1
- ウ n>M
- エ n>M+1
出典:基本情報技術者試験 科目A免除 修了試験 20191208 実施分 問10
答えと解説を見る
正解:ウ
覚える知識
繰返し流れ図の終了条件の読解(後判定ループ)
後判定ループではn←n+1の後で判定するため、終了条件はn>Mとなる。
この問題で必要なこと
左はnをMから1まで減らしながら掛けるM!、右はn=1から増やして掛け、n+1後にn>Mで終了すればM回掛けてM!になる。
ひっかけ
n>M−1やn>M+1にすると掛ける回数が1回ずれる。
この知識の出題:本試験系 0 回・免除試験 3 回(公開問題での観測値)