戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

応用情報技術者 2010年 秋期 午前2 問07


問題文

正の整数Mに対して、次の二つの流れ図に示すアルゴリズムを実行したとき、結果xの値が等しくなるようにしたい。aに入れる条件として、適切なものはどれか。
応用情報技術者 2010年 秋期 午前2 問07の問題画像

選択肢

ア:n<M
イ:n>M-1
ウ:n>M(正解)
エ:n>M+1

🔒 解説は解答すると表示されます

階乗を求める反復処理【午前2解説】

正解の理由

左側の流れ図は、変数nをMから1まで1ずつ減らしながらxにnを掛けています。一方、右側の流れ図はnを1から始めて1ずつ増やし、条件aでループを終了します。
このとき、右側のループがn > Mとなれば、nがMを超えた時点で終了し、nは1からMまでの値を取ります。これにより、左側と同じ積 が得られます。
したがって、条件aは「n > M」が適切であり、選択肢ウが正解です。

解法ステップ

  1. 左側のループの動作を確認し、nがMから1まで減少していることを理解する。
  2. 右側のループの初期値と増分を確認し、nが1から増加していることを把握する。
  3. 両者のループ回数が一致するための終了条件を考える。
  4. 右側のループがnの値がMを超えたら終了する条件「n > M」が適切と判断する。
  5. 選択肢の中から「n > M」を選ぶ。

選択肢別の誤答解説

  • ア: n < M
    → nがMより小さい間ループを続けると、n = Mのときループが回らず、積の計算が不足します。
  • イ: n > M-1
    → n > M-1はn ≥ Mと同義で、n = Mの時点で終了してしまい、ループ回数が不足します。
  • ウ: n > M
    → nがMを超えたら終了し、n = 1からMまで正しくループするため正解です。
  • エ: n > M+1
    → nがM+1を超えるまでループすると、n = M+1のときもループし、余分な計算が入ります。

よくある誤解

ループの終了条件を「n > M-1」や「n > M+1」と誤解し、ループ回数がずれてしまうことがあります。
また、不等号の向きを逆にしてしまい、無限ループや計算結果の不一致を招くことも多いです。

補足コラム

この問題は「ループの境界条件設定」の典型例です。プログラミングやアルゴリズム設計では、ループの開始値・終了条件・増分を正確に設定しないと、計算結果が異なったり無限ループになったりします。
特に「不等号の向き」と「境界値の選定」は注意が必要で、数学的帰納法や数列の範囲指定の感覚が役立ちます。

FAQ

Q: なぜ「n > M」だとループが正しく終了するのですか?
A: nがMを超えた時点でループを終了するため、nは1からMまでの値を取り、左側のループと同じ回数だけ繰り返します。
Q: 「n > M-1」と「n > M」はどう違いますか?
A: 「n > M-1」はn ≥ Mと同じ意味で、n = Mの時点でループ終了となり、ループ回数が不足します。

関連キーワード: ループ条件、境界値設定、アルゴリズム、反復処理、不等号、演算制御
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者を
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について