Drill

ProblemsJava › billing

Refund for partially used service

mediumbillingMathJava

A customer paid upfront but only used part of the service. Refund the unused portion.

partialRefund(paid: int, usedUnits: int, unitPrice: int) → 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 partialRefund(int paid, int usedUnits, int unitPrice) {
    
}

Worked examples

CallResult
partialRefund(1000, 40, 10)600
partialRefund(1000, 200, 10)0
partialRefund(500, 0, 50)500
partialRefund(1000, 100, 10)0

Hint

Multiply usage by price, subtract from what was paid, and clamp.

Reference solution in Java
int partialRefund(int paid, int usedUnits, int unitPrice) {
    int cost = usedUnits * unitPrice;
    return paid > cost ? paid - cost : 0;
}

The same problem in another language

More billing problems in Java