# Puzzle: Tortoise racing [reference]

Tortoise racing” is a coding puzzle that people can be attempted in the following languages: ruby, python, javascript, haskell, java, csharp, clojure, coffeescript, cpp, php, crystal, fsharp, c, typescript, rust, swift, go, r, nim, shell, ocaml, kotlin, groovy, fortran, elixir, julia, scala, powershell, reason, and racket.

• Difficulty: 6 kyu
• Stars: 877
• Category: reference
• Tags: Fundamentals
• Source: codewars

# Description

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 &gt;= v2` then return `nil`, `nothing`, `null`, `None` or `{-1, -1, -1}` for C++, C, Go, Nim, `[]` for Kotlin or “-1 -1 -1”.

## Examples:

(form of the result depends on the language)

``````
race(720, 850, 70) =&gt; [0, 32, 18] or "0 32 18"
race(80, 91, 37)   =&gt; [3, 21, 49] or "3 21 49"

``````

** Note:

• See other examples in “Your test cases”.

• In Fortran - as in any other language - the returned string is not permitted to contain any redundant trailing whitespace: you can use dynamically allocated character strings.

** Hints for people who don’t know how to convert to hours, minutes, seconds:

• Tortoises don’t care about fractions of seconds

• Think of calculation by hand using only integers (in your code use or simulate integer division)

• or Google: “convert decimal time to hours minutes seconds”

# Solve It Here

Click the link below to solve it on Codewars:

# Notes

This puzzle was posted by a Slackbot via a slash command. If you want to help work on the app, send a message to @Josh.

If you don’t want to see the coding puzzles when you visit the forum, you can go into your settings and mute the puzzles category.