回答編集履歴
1
表現修正
answer
CHANGED
@@ -3,21 +3,21 @@
|
|
3
3
|
今回の場合、問題は『お釣りを自動販売機から出したい。でも、自動販売機の中に存在しない硬貨を出すことはできない』ということですよね。
|
4
4
|
であれば、
|
5
5
|
|
6
|
-
> 「指定された金額を
|
6
|
+
> 「指定された金額のお釣りを得るために、自販機の中から都合がいい硬貨を1枚取り出す」
|
7
7
|
|
8
8
|
という処理が存在すると想定すると、保有硬貨が足りない場合を考慮した処理が作れそうな気がしてきませんか?(この処理を何回も繰り返して、お釣りとして出す必要があるだけ硬貨を1枚ずつ引っ張り出してくればいいのです)
|
9
9
|
|
10
|
-
そのあとで「指定された金額を
|
10
|
+
そのあとで「指定された金額のお釣りを得るために、自販機の中から都合がいい硬貨を1枚取り出す」というのは具体的にどんな動きなんだ?と考えるわけです。
|
11
11
|
|
12
12
|
> 例:
|
13
|
-
> 【指定された金額を
|
13
|
+
> 【指定された金額のお釣りを得るために、自販機の中から都合がいい硬貨を1枚取り出す】の詳細
|
14
14
|
>
|
15
15
|
> この処理では、500円、100円、50円、10円 のいずれかの硬貨を1枚取り出す。
|
16
16
|
> この処理で硬貨を取り出すと、自販機の保有硬貨数が1枚減る。
|
17
17
|
> この処理では、自販機の中に存在しない硬貨は取り出せない。
|
18
18
|
> この処理では、取り出す硬貨の枚数が少なくて済むように、価値が高い硬貨を優先して取り出そうとする。
|
19
|
-
> (例: 999円
|
19
|
+
> (例: 999円のお釣りなら、500円硬貨を1枚取り出そうとする)
|
20
|
-
> (例: 499円を
|
20
|
+
> (例: 499円をお釣りなら、100円硬貨を1枚取り出そうとする)
|
21
21
|
|
22
22
|
この処理は元の問題を切り分けたものなので、ここで考えなければいけない問題の難度は元の問題よりも下がっています。
|
23
23
|
|