Apply a promo percentage
The till applies a promo code to a price held in minor units — kuruş, cents, whatever the currency splits into.
- A percentage outside 1 to 100 is a bad code: return the price untouched.
- Stay in integers and drop the remainder, so 10% off 999 is 900, not 899.1.
discounted_price(price: int, percent: int) → int
Where you start
def discounted_price(price: int, percent: int) -> int:
Worked examples
| Call | Result |
|---|---|
discounted_price(1000, 20) | 800 |
discounted_price(999, 10) | 900 |
discounted_price(1000, 0) | 1000 |
discounted_price(1000, 150) | 1000 |
Hint
Reject the bad range first, then integer-divide.
Reference solution in Python
def discounted_price(price: int, percent: int) -> int:
if percent < 1 or percent > 100:
return price
return price - price * percent // 100