修了試験 2019-12-08実施分 基本情報技術者試験 問10
正の整数Mに対して,次の二つの流れ図に示すアルゴリズムを実行したとき,結果xの値が等しくなるようにしたい。 aに入れる条件として,適切なものはどれか。 〔流れ図〕

正答3
解説
正解は3です。 左の流れ図は、nをMから1まで1ずつ減らしながらx←x×nを繰り返します。 そのため、結果はx=M×(M-1)×…×1、つまりMの階乗です。 右の流れ図は、x←x×nとn←n+1を実行してから条件aを判定し、Yesで終了します。 【計算】 右の流れ図で、n=1、2、…、Mの順にxへ掛ければMの階乗になります。 n=Mを掛けた直後にn←n+1を実行するので、判定時のnはM+1です。 このとき初めてYesになり、それより前のn=2〜MではNoになる条件が必要です。 n>Mは、n=M+1で初めて成り立ちます。 【選択肢別解説】 1:× n<Mでは、Mが3以上なら最初の判定(n=2)でYesになり、すぐ終了してしまいます。 2:× n>M-1は、n=Mで成り立ちます。 そのためMを掛ける前に終了し、結果は(M-1)の階乗になります。 3:○ n>Mはn=M+1で初めて成り立ちます。 1からMまで掛け終えた直後に終了し、左と同じ結果になります。 4:× n>M+1は、n=M+2まで成り立ちません。 そのためM+1まで余分に掛けてしまいます。 【ポイント】 後判定ループでは、判定の直前にカウンタを増やしているかどうかで終了条件が1ずれます。 M=3など具体的な値で1周ずつたどると確実です。まとめて解く
修了試験 2019-12-08実施分を通しで解く(80問)→