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