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

基本情報技術者 2013年 春期 午前(科目A)08


問題文

を自然数とするとき、流れ図で表される手続を実行した結果として、適切なものはどれか。
基本情報技術者 2013年 春期 午前(科目A) 問08の問題画像基本情報技術者 2013年 春期 午前(科目A) 問08の選択肢の画像

選択肢

(正解)

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

自然数の流れ図処理【午前解説】

正解の理由

正解は です。
流れ図の処理を追うと、初期では です。判定で が真なら終了し、偽()なら から を引き を 1 増やして判定に戻ります。これを繰り返すことで となり、同時に不変式 を満たす q が得られます。したがって q が商、r が余りです。

解法ステップ

  1. 初期化を確認: を把握する。
  2. 判定条件を読む:条件は 。Yes で終了、No で のとき処理が進む。
  3. ループ処理を確認:No 側で を行い判定へ戻る。
  4. 不変式を導く:各ループ後に が成り立つことを確認する。
  5. 終了条件で が得られ、q が商、r が余りであると結論付ける。

選択肢別の誤答解説

  • ア:q を「x ÷ y の余り」、r を「x ÷ y の商」としているが、流れ図では q が繰り返し加算され商に相当し、r が引かれて小さくなる余りなので逆です。
  • :正解。q が の商、r が余りです。
  • ウ:y ÷ x としているため除算の方向が逆です。流れ図は x から y を引くので x÷y を扱っています。
  • エ:ウと同様に除数と被除数が逆になっており、さらに商・余りの位置も逆です。

よくある誤解

  • 誤解1:判定の Yes/No を見誤り、ループの方向(終了が右、繰り返しが下)を逆に解釈する。これで商と余りが入れ替わる誤答が出ます。
  • 誤解2:変数名の意味(q が積算される回数=商)を見落とし、q を余りと考えてしまう。流れを追って増減を確認すれば防げます。
  • 誤解3: のケースを考えずに除算と同じ扱いを想定すると無限ループや未定義扱いになる点を見落とす。

補足コラム

  • 擬似コード例(理解確認用):
q = 0
r = x
while not (r < y):   # つまり r >= y の間
    r = r - y
    q = q + 1
# 終了後: q は商, r は余り
  • ループ回数は最終的に q 回であり、計算量は (繰り返し引き算の回数)。効率的な整数除算アルゴリズムと比べると非効率ですが、原理的に正しい方法です。
  • 注意: の場合は除算にならず、このフローは無限ループあるいは未定義の扱いになります。通常は を前提とします。

FAQ

Q1: もし最初から ならどうなりますか?
A1: 初期判定で が真になりすぐ終了するので (余りが被除数そのまま)です。
Q2: の場合は?
A2: 初期で 、判定 が真( の場合)で終了するため です。
Q3: の場合は?
A3: から 1 を引き続けるので最終的に になります(1 で割った商は被除数、余りは 0)。
Q4: のときは?
A4: このフローは無限ループになります。実際の問題設定では除数 は 1 以上と仮定するのが自然です。

関連キーワード: アルゴリズム、フローチャート、繰り返し処理、除算、剰余、商、ループ不変式、反復法、整数演算、手続き的アルゴリズム
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

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

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