为了尝试鼓励,畅销 5 书系列书籍的销售,书店决定提供多书购买的折扣。
这五本书中的任何一本都要花 8 美元.
但是,如果您购买两本不同的书籍,那么这两本书将获得 5%的折扣。
如果您购买 3 本不同的书籍,您将获得 10%的折扣。
如果您购买 4 本不同的书籍,您将获得 20%的折扣。
如果您全部购买 5 件,即可获得 25%的折扣。
注意:如果您购买了 4 本书,但不同的书只有 3 本,那么您可以在 3 本书中获得 10%的折扣,但是第 4 本书的价格仍为 8 美元。
你的任务是写一段代码,来计算购物车(这 5 本书的任意搭配)的价格(只包含同一系列的书籍),给予尽可能大的折扣。
例如,购物车若是下面的书,那价格是多少?
- 第一本书的 2 份
- 第二本书的 2 份
- 第三本书的 2 份
- 第四本书的 1 份
- 第五本书的 1 份
将这 8 本书分组的一种方法是:
- 第 1 组 5 本书 -> 25%折扣(第 1,第 2,第 3,第 4,第 5)
- 还有 1 组 3 本书 -> 10%折扣(第 1 名,第 2 名,第 3 名)
这将总共给出:
- 5 本书,25%的折扣
- 还有 3 本书可享受 10%的折扣
导致:
- 5 x(8 - 2.00)== 5 x 6.00 == $ 30.00
- 还有 3 x(8 - 0.80)== 3 x 7.20 == 21.60 美元
总计 51.60 美元
但是,将这 8 本书分组的另一种方法是:
- 第 1 组 4 本书 -> 20%折扣(第 1,第 2,第 3,第 4)
- 还有 1 组 4 本书 -> 20%折扣(第 1,第 2,第 3,第 5)
这将总共给出:
- 4 本书,20%的折扣
- 还有 4 本书,20%的折扣
导致:
- 4 x(8 - 1.60)== 4 x 6.40 == 25.60 美元
- 还有 4 x(8 - 1.60)== 4 x 6.40 == 25.60 美元
总计 51.20 美元
51.20 美元是最大折扣的价格.
灵感来自 Cyber-Dojo 的哈利波特卡塔.http://cyber-dojo.org