書店

書店

中等

說明

為了鼓勵更多人購買某個熱門系列(共 5 本書)中不同的書,一間書店決定對一次購買多本書提供折扣。

這五本書中任一本,單本售價為 $8。

不過,如果你買兩本不同的書,這兩本書就能享有 5% 的折扣。

如果你買 3 本不同的書,就能享有 10% 的折扣。

如果你買 4 本不同的書,就能享有 20% 的折扣。

如果你五本全買,就能享有 25% 的折扣。

注意:如果你買四本書,其中 3 本標題不同,這 3 本因為湊成一套而享有 10% 的折扣,但第四本書仍然要以 $8 計價。

你的任務是寫一段程式碼,計算任何想得到的購物籃(只包含同一系列的書)的價格,並盡可能給出最大的折扣。

舉例來說,下面這一籃書要多少錢?

  • 第一本書 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 就是折扣最多的價格。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Delphi Pascal Exercism

準備好開始 書店 了嗎?

註冊 Exercism,透過 76 個練習 和真人引導來學習並精通 Delphi Pascal,全部免費。