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

正答3
解説
正解は3です。 図の左の流れ図は、ループでnをMから1まで1ずつ減らしながら、xにnを掛けます。 そのため、左の結果はx=M×(M-1)×…×1=M!(Mの階乗)です。 右の流れ図は、x=1、n=1から始め、「x×n をxに代入」「n+1 をnに代入」のあとに判定aを行い、Noなら繰り返します。 【計算】 1回目はx=1×1=1となり、nは2になります。 2回目はx=1×2となり、nは3になります。 k回目の判定時点では、x=k!、n=k+1です。 x=M!になるのはk=Mのときで、そのときn=M+1です。 したがって、n=M+1で初めてYesになる条件が必要で、それはn>Mです。 【選択肢別解説】 1:× n<Mでは、Mが3以上のとき最初の判定(n=2)ですぐYesになり終了します。 xは1のままで、M!になりません。 2:× n>M-1はn≧Mと同じです。 n=Mの時点で終了するので、x=(M-1)!になり、Mが1回分掛けられません。 3:○ n>Mは、n=M+1になった時点で初めて真になります。 このときxはM!になっており、左の流れ図と一致します。 M=1でも、1回目の判定でn=2なので正しく終了します。 4:× n>M+1はn=M+2で初めて真になります。 そのためx=(M+1)!になり、1回多く掛けてしまいます。 【ポイント】 後判定型の繰返しでは、変数を更新した後に判定するため、終了時のカウンタは最後に処理した値より1大きくなります。 k回目終了時点の変数の値を式で表すと、条件の境界を正確に決められます。まとめて解く
修了試験 2015-01-25実施分を通しで解く(80問)→