問題
次の擬似言語プログラムを実行した場合、変数nの最終値はいくつか。 整数型: n ← 100 while (n mod 7 ≠ 0) n ← n - 1 endwhile
選択肢
- 1ア 91
- 2イ 95
- 3ウ 98
- 4エ 100
正解
3. ウ 98
詳しい解説を見る解説を閉じる
解説
このプログラムは、nが7で割り切れる(n mod 7=0になる)までnを1ずつ減らすため、100以下で最大の7の倍数を求めることになる。トレースすると、100 mod 7=2(7×14=98、余り2)で継続しn=99、99 mod 7=1で継続しn=98、98 mod 7=0となりループ終了。98=7×14であり、ウが正解である。アの91も7の倍数(7×13)ではあるが、100から減らして最初に到達する7の倍数は98であるため誤り。イの95(余り4)とエの100(余り2)は7で割り切れず、終了条件を満たさない。頻出ポイント:条件が不成立になるまで回るwhile型ループは「条件が崩れた瞬間の値」が答えになるため、終了判定のタイミングを正確に読むこと。modの値は商と余りの筆算で確実に求める。
一問一答
科目A 180問+科目B 60問