Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Two tortoises named A and B must run a race. A starts with an average speed of 720 feet per hour. Young B knows she runs faster than //A, and furthermore has not finished her cabbage.
- //When she starts, at last, she can see that A has a 70 feet lead but B's speed is 850 feet per hour. How long will it take B to catch //A?
- //More generally: given two speeds v1 (A's speed, integer > 0) and v2 (B's speed, integer > 0) and a lead g (integer > 0) how long will //it take B to catch A?
- //The result will be an array [hour, min, sec] which is the time needed in hours, minutes and seconds (round down to the nearest //second) or a string in some languages.
- //If v1 >= v2 then return nil, nothing, null, None or {-1, -1, -1} for C++, C, Go, Nim, [] for Kotlin or "-1 -1 -1".
- #My_solution
- fun race(v1:Int, v2:Int, g:Int):IntArray {
- // your code
- if (v1 >= v2) return intArrayOf()
- val time : Int = g * 3600 / (v2 - v1)
- return intArrayOf(time / 3600, (time % 3600) / 60, time % 60)
- }
- #Best_solution
- fun race(v1:Int, v2:Int, g:Int):IntArray {
- return if (v1 >= v2) {
- intArrayOf()
- } else {
- val s = (3600 * g) / (v2 - v1)
- intArrayOf( s/3600, s/60%60, s%60 )
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement