How much survives a round trip
Money changes from currency A to B to C, and the rates are given in basis points per leg. Find what is left in the end.
- Each leg multiplies by its basis-point rate and divides by 10000.
- The whole trip is combined into one integer division: amount × a × b ÷ (10000 × 10000).
- The numbers stay small enough that no 32-bit value overflows.
exchange_round_trip(amount_minor: int, rate_a_bbps: int, rate_b_cbps: int) → int
Where you start
def exchange_round_trip(amount_minor: int, rate_a_bbps: int, rate_b_cbps: int) -> int:
Worked examples
| Call | Result |
|---|---|
exchange_round_trip(200, 1000, 2500) | 5 |
exchange_round_trip(100, 5000, 2000) | 10 |
exchange_round_trip(1000, 1000, 1000) | 10 |
exchange_round_trip(100, 8000, 1000) | 8 |
Hint
Multiply all three factors, then divide once by a hundred million.
Reference solution in Python
def exchange_round_trip(amount_minor: int, rate_a_bbps: int, rate_b_cbps: int) -> int:
return amount_minor * rate_a_bbps * rate_b_cbps // (10000 * 10000)