修了試験 2022-06-12実施分 基本情報技術者試験 問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ならループ先頭に戻る、Yesなら終了)〕

正答3
解説
正解は3です。 左の流れ図は、ループ端の指定「n:M,-1,1」により、nをMから1まで1ずつ減らしながらxにnを掛けます。 したがって、左の結果は x=M×(M-1)×…×1、つまりMの階乗です。 右の流れ図は、x←1、n←1から始め、x←x×nとn←n+1を繰り返し、判定aがYesになると終了します。 右でも1からMまでを掛けた時点でちょうど終了する条件をaに入れる必要があります。 【処理のたどり方】 右の流れ図でx←x×Mを実行した直後に、n←n+1でnはM+1になります。 この時点で判定aが初めてYesになれば、xはMの階乗になります。 それより前の、x←x×(M-1)を実行した直後はn=Mであり、ここではNoでなければなりません。 n=MでNo、n=M+1でYesになる条件は n>M です。 【選択肢別解説】 1:× n<Mを判定に使うと、1回目の処理後のn=2の時点で、Mが3以上ならすぐYesになって終了します。 Mの階乗まで掛け算が進みません。 2:× n>M-1は、n=Mの時点でYesになります。 この時点ではまだMを掛けていないので、結果は(M-1)の階乗になります。 3:○ n>Mは、n=MのときはNoで繰返しを続け、Mを掛けた後のn=M+1で初めてYesになります。 右の結果も1×2×…×Mとなり、左の結果と等しくなります。 4:× n>M+1は、n=M+1のときもNoになり、さらにM+1を掛けてしまいます。 結果は(M+1)の階乗になり、左と一致しません。 【ポイント】 後判定型のループでは、判定の直前にnが1増えていることを忘れないようにします。 境界値のn=Mとn=M+1を当てはめて確かめると、取り違えを防げます。まとめて解く
修了試験 2022-06-12実施分を通しで解く(80問)→