1
exercism fetch java book-store

Book Store

To try and encourage more sales of different books from a popular 5 book series, a bookshop has decided to offer discounts on multiple book purchases.

One copy of any of the five books costs $8.

If, however, you buy two different books, you get a 5% discount on those two books.

If you buy 3 different books, you get a 10% discount.

If you buy 4 different books, you get a 20% discount.

If you buy all 5, you get a 25% discount.

Note: that if you buy four books, of which 3 are different titles, you get a 10% discount on the 3 that form part of a set, but the fourth book still costs $8.

Your mission is to write a piece of code to calculate the price of any conceivable shopping basket (containing only books of the same series), giving as big a discount as possible.

For example, how much does this basket of books cost?

One way of grouping these 8 books is:

This would give a total of:

Resulting in:

For a total of $51.60

However, a different way to group these 8 books is:

This would give a total of:

Resulting in:

For a total of $51.20

And $51.20 is the price with the biggest discount.

Running the tests

You can run all the tests for an exercise by entering

1
$ gradle test

in your terminal.

Source

Inspired by the harry potter kata from Cyber-Dojo. http://cyber-dojo.org

Submitting Incomplete Solutions

It's possible to submit an incomplete solution so you can see how others have completed the exercise.