Drill

ProblemsJava › pricing

Loyalty points for a basket

easypricingMathJava

The card scheme awards one point for every full ten lira spent, and doubles that on promotion days.

pointsFor(spend: int, doubleDay: bool) → int

Java needs a compiler and Drill does not host one yet, so this page is the reference rather than an exercise: the problem, worked examples, and the solution in full. To type it out, the same problem runs in Python.

Solve it in Python →

Where you start

int pointsFor(int spend, boolean doubleDay) {
    
}

Worked examples

CallResult
pointsFor(10000, false)10
pointsFor(10999, false)10
pointsFor(10000, true)20
pointsFor(999, false)0

Hint

Integer-divide by 1000, then double if the flag is set.

Reference solution in Java
int pointsFor(int spend, boolean doubleDay) {
    if (spend <= 0) return 0;
    int base = spend / 1000;
    return doubleDay ? base * 2 : base;
}

The same problem in another language

More pricing problems in Java