Profit margin in permille
A store wants its margin as a whole per-mille number: how much of each minor unit of revenue survives as profit.
- Margin is (revenue - cost) × 1000 ÷ revenue, rounded down.
- A revenue of zero or less has no defined margin: return 0.
- A loss yields a negative margin.
profitMargin(revenue: int, cost: int) → int
Go 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.
Where you start
func profitMargin(revenue int, cost int) int {
}
Worked examples
| Call | Result |
|---|---|
profitMargin(1000, 600) | 400 |
profitMargin(1000, 1000) | 0 |
profitMargin(1000, 1200) | -200 |
profitMargin(0, 100) | 0 |
Hint
Subtract the cost from revenue, scale by 1000, divide by revenue.
Reference solution in Go
func profitMargin(revenue int, cost int) int {
if revenue <= 0 {
return 0
}
return (revenue - cost) * 1000 / revenue
}