問題
太郎くんはお小遣いを貯めています。毎月 A 円もらい、毎月 B 円使います。
N ヶ月後の残高(最初の残高は 0 円)を出力してください。
残高が 0 を下回ることはないと仮定します(A >= B が保証されます)。
入力形式
A B N
制約
$1 \le A \le 10000$
$0 \le B \le A$
$1 \le N \le 1000$
入出力例
入力例 1
3000 1500 6出力例 1
9000入力例 2
5000 5000 10出力例 2
0入力例 3
10000 2500 4出力例 3
30000ヒント (段階的開示)
ヒント1: 方向性
1ヶ月ごとに「もらう額 - 使う額」が貯まります。N ヶ月分の合計を考えましょう。
ヒント2: アプローチ
1ヶ月の純貯蓄 =
A - B。N ヶ月後の残高 = (A - B) * N。掛け算1回で計算できます。ヒント3: 誘導
A, B, N = map(int, input().split())
print((A - B) * N)
模範解答 (Python)
A, B, N = map(int, input().split())
print((A - B) * N)
Step-by-Step 解説
11行で3つの数を読み込む
A, B, N = map(int, input().split()) でスペース区切りの3整数をアンパック代入。
2N ヶ月後の残高を計算
1ヶ月で貯まる額は
例: A=3000, B=1500, N=6 → 1500 × 6 = 9000円。
1ヶ月で貯まる額は
A - B。それが N ヶ月続くので (A - B) * N。例: A=3000, B=1500, N=6 → 1500 × 6 = 9000円。
よくあるミス
| ミス | 原因 | 正しい書き方 |
|---|---|---|
A, B, N = input().split() | 文字列のまま計算不可 | map(int, ...) |
A - B * N | 演算子優先順位ミス | (A - B) * N |
| ループで1ヶ月ずつ足す | 動くが冗長 | 掛け算1回でOK |
次のステップ
- 発展: 「残高が X 円以上になるのは何ヶ月後か?」
- 次回予告: 条件分岐(if/elif/else)