Livraria

Livraria

Médio

Instruções

Para tentar incentivar mais vendas de livros diferentes de uma popular série de 5 livros, uma livraria decidiu oferecer descontos na compra de vários livros.

Um exemplar de qualquer um dos cinco livros custa $8.

No entanto, se comprares dois livros diferentes, tens 5% de desconto nesses dois livros.

Se comprares 3 livros diferentes, tens 10% de desconto.

Se comprares 4 livros diferentes, tens 20% de desconto.

Se comprares os 5, tens 25% de desconto.

Nota: se comprares quatro livros, dos quais 3 são títulos diferentes, tens 10% de desconto nos 3 que fazem parte de um conjunto, mas o quarto livro custa na mesma $8.

A tua missão é escrever código que calcule o preço de qualquer cesto de compras imaginável (que contenha apenas livros da mesma série), dando o maior desconto possível.

Por exemplo, quanto custa este cesto de livros?

  • 2 exemplares do primeiro livro
  • 2 exemplares do segundo livro
  • 2 exemplares do terceiro livro
  • 1 exemplar do quarto livro
  • 1 exemplar do quinto livro

Uma forma de agrupar estes 8 livros é:

  • 1 grupo de 5 --> 25% de desconto (1.º, 2.º, 3.º, 4.º, 5.º)
  • +1 grupo de 3 --> 10% de desconto (1.º, 2.º, 3.º)

Isto daria um total de:

  • 5 livros com 25% de desconto
  • +3 livros com 10% de desconto

O que dá:

  • 5 x (8 - 2.00) == 5 x 6.00 == $30.00
  • +3 x (8 - 0.80) == 3 x 7.20 == $21.60

Para um total de $51.60

No entanto, há outra forma de agrupar estes 8 livros:

  • 1 grupo de 4 livros --> 20% de desconto (1.º, 2.º, 3.º, 4.º)
  • +1 grupo de 4 livros --> 20% de desconto (1.º, 2.º, 3.º, 5.º)

Isto daria um total de:

  • 4 livros com 20% de desconto
  • +4 livros com 20% de desconto

O que dá:

  • 4 x (8 - 1.60) == 4 x 6.40 == $25.60
  • +4 x (8 - 1.60) == 4 x 6.40 == $25.60

Para um total de $51.20

E $51.20 é o preço com o maior desconto.

Editar via GitHub A ligação abre numa nova janela ou separador
Delphi Pascal Exercism

Estás pronto para começar Livraria?

Inscreve-te no Exercism para aprenderes e dominares Delphi Pascal com 76 exercícios, e mentoria humana real, tudo grátis.