Книгарня

Книгарня

Середня

Вказівки

Щоб заохотити продажі різних книжок із популярної серії з 5 книжок, книгарня вирішила пропонувати знижки на покупку кількох книжок одночасно.

Один примірник будь-якої з пʼяти книжок коштує $8.

Якщо ж купити дві різні книжки, ми отримуємо 5% знижки на ці дві книжки.

Якщо купити 3 різні книжки, ми отримуємо 10% знижки.

Якщо купити 4 різні книжки, ми отримуємо 20% знижки.

Якщо купити всі 5, ми отримуємо 25% знижки.

Звернімо увагу: якщо купити чотири книжки, з яких 3 мають різні назви, ми отримуємо 10% знижки на ті 3, що входять до набору, але четверта книжка все одно коштує $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, щоб вивчати й опановувати Delphi Pascal, а також 76 вправ та справжнє наставництво від людей, і все це безкоштовно.