CO-P15情報Ⅰ 対策問題

コンピュータとプログラミングプログラミング特訓 (第3問対策)

次のプログラムは、1000円の金額に1割の利子を付ける処理を3回繰り返す。実行したとき、表示される値はどれか。 (1) kingaku = 1000 (2) i を 1 から 3 まで 1 ずつ増やしながら繰り返す: (3) ⎿ kingaku = kingaku + kingaku ÷ 10 (4) 表示する(kingaku) ※ ÷は整数の商。

解答・解説を見る

正解: 1

正答

1

この問題のポイント

複利計算のトレース(増えた額にさらに1割) を問う問題です。

解説

(3)の「kingaku = kingaku + kingaku ÷ 10」は、「今の金額に、今の金額の1割を加えて上書きする」という意味です。右辺の kingaku は毎回「前の周で更新された値」になる——ここがこの問題の核心です。

kingaku の変化を1ステップずつトレースします。
i=1のとき: kingaku = 1000 + 1000÷10 = 1000 + 100 = 1100。
i=2のとき: kingaku = 1100 + 1100÷10 = 1100 + 110 = 1210。
i=3のとき: kingaku = 1210 + 1210÷10 = 1210 + 121 = 1331

よくある誤りは「1000の1割(100円)が3回で +300、答え1300」とする計算です。これは元本にしか利子がつかない「単利」の考え方。プログラムは更新された値に対して次の1割を計算するので「複利」になり、1.1倍を3回、つまり 1000×1.1³=1331 と一致します。

「前回の結果を使って次を計算する」のは繰り返し処理の本質で、複利のほか、人口増加、感染拡大、細菌の増殖など、共通テストのシミュレーション問題はほぼすべてこの形です。「右辺の変数は今いくつか」を毎周書き出すトレース表が最強の武器になります。

選択肢の確認

1.○ 1100 → 1210 → 1331。増えた額にさらに1割がつく複利。
2.× 1300は毎回100ずつ足す単利と誤解した値。
3.× 1100は1回目(i=1)だけの値。3周していない。
4.× 1030は1割を1%と誤読した形(毎回約10ずつ)。

ここだけは覚えよう

右辺の変数は「前の周で更新された値」 — 複利型の繰り返しは毎周の値をトレース表に書いて追う。

関連問題

CO-P14CO-P16