Drill

ProblemsGo › finance

How much survives a round trip

mediumfinanceMathGo

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.

exchangeRoundTrip(amountMinor: int, rateABbps: int, rateBCbps: 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.

Solve it in Python →

Where you start

func exchangeRoundTrip(amountMinor int, rateABbps int, rateBCbps int) int {
	
}

Worked examples

CallResult
exchangeRoundTrip(200, 1000, 2500)5
exchangeRoundTrip(100, 5000, 2000)10
exchangeRoundTrip(1000, 1000, 1000)10
exchangeRoundTrip(100, 8000, 1000)8

Hint

Multiply all three factors, then divide once by a hundred million.

Reference solution in Go
func exchangeRoundTrip(amountMinor int, rateABbps int, rateBCbps int) int {
	return amountMinor * rateABbps * rateBCbps / (10000 * 10000)
}

The same problem in another language

More finance problems in Go