応用情報技術者試験 応用情報技術者試験 令和6年度春期 午前5: 正の整数 M に対して,次の二つの流れ図に示すアルゴリズムを実行したとき,結果 x の値が等しくなるようにしたい。a に入れる条件として,適切なものはどれか。

応用情報技術者試験 令和6年度春期 午前
Q 55 / 80
正の整数 M に対して,次の二つの流れ図に示すアルゴリズムを実行したとき,結果 x の値が等しくなるようにしたい。a に入れる条件として,適切なものはどれか。
二つの流れ図(フローチャート)。左はループ端 n:M,−1,1 で x←(x×n) を繰り返す。右は判定記号 a で No/Yes 分岐するループ
この問の正解率:56.02%(764件)

問題本文

正の整数 M に対して,次の二つの流れ図に示すアルゴリズムを実行したとき,結果 x の値が等しくなるようにしたい。a に入れる条件として,適切なものはどれか。

選択肢

  • .n<M
  • .n>M−1
  • .n>M
  • .n>M+1

正解

. n>M

解説

左の流れ図はループ端 n:M,−1,1 により n を M から1まで1ずつ減らしながら x←x×n を繰り返すので、x には M×(M−1)×…×1 すなわち M の階乗が求まる。右の流れ図は x←1, n←1 から始め、x←x×n のあと n←n+1 し、判定 a が No の間ループを続け Yes で終了する後判定ループである。左と同じ階乗 M! を得るには n が 1,2,…,M と掛けられた直後にループを抜ければよく、n が M を超えたとき(n>M)に終了させるウが正解である。

選択肢ごとの解説

  • .n<M を終了条件にすると n がまだ小さいうちにループを抜けてしまい、Mまで掛けきれず階乗にならないため誤り。
  • .n>M−1 で終了すると n が M に達する前(n=Mの直前)に抜けてしまい、最後のMを掛けられず値が不足するため誤り。
  • .正しい。n←n+1 の後に n>M で終了判定すると、n=1〜Mまで掛けた直後にループを抜け、x=M! となって左の結果と一致する。
  • .n>M+1 で終了すると n=M+1 のときの掛け算(x×(M+1))まで実行してしまい、余計に1回多く掛けるため値が大きくなり誤り。

応用情報技術者試験 令和6年度春期 午前過去問一覧へ戻る・問5