IPA過去問ドリル

平成22年度 秋期 応用情報技術者試験 午前 問7

テクノロジ/アルゴリズム

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

平成22年度 秋期 応用情報技術者試験 午前 問7の図

出典:平成22年度 秋期 応用情報技術者試験 午前 問7

正解:ウ

解説

左の流れ図はnをMから1まで1ずつ減らしながらx×n→xを実行するので,x=M!になります。右の流れ図はnを1から始めてx×n→xを実行した後にn+1→nを行い,条件aが成立するまで繰り返すので,同じくx=M!となるには,n=Mのときの演算まで実行してから終了する必要があります。条件aの直前でnはM+1に更新されているため,「n>M」でループを終了すれば,n=1からMまでの演算がちょうど行われます。

選択肢ごとの解説

  • 誤り。n<Mでは,n=Mになる前にループを終了してしまい,x×M→xの演算が行われず結果が一致しません。
  • 誤り。n>M-1(すなわちn≧M)では,n=Mの次のn=M+1の演算まで行われる直前で終了しますが,判定のタイミングを踏まえるとMまでの演算が終わる前に条件を満たしてしまい,結果が一致しません。
  • 正しい。n>Mを満たすまで繰り返すことで,n=1からMまでのx×n→xの演算がすべて実行され,左の流れ図と同じx=M!が得られます。
  • 誤り。n>M+1では,n=M+1のときにも余分にx×(M+1)→xの演算が行われてしまい,結果が一致しません。
応用情報技術者の過去問を演習モードで解く