LeetCode 2739. Total Distance Traveled in F#

URL

Total Distance Traveled - LeetCode

Code

https://github.com/syohex/dotnet-study/tree/master/fsharp/leetcode/problems/2739/main.fsx

let distanceTraveled (mainTank: int) (additionalTank: int) : int =
    let rec distanceTraveled' mainTank additionalTank acc =
        if mainTank < 5 then
            acc + mainTank * 10
        else
            let mainTank' = mainTank - 5
            let acc' = acc + 50

            if additionalTank > 0 then
                distanceTraveled' (mainTank' + 1) (additionalTank - 1) acc'
            else
                distanceTraveled' mainTank' additionalTank acc'

    distanceTraveled' mainTank additionalTank 0