“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
- Votes: 1044
- 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 >= 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) => [0, 32, 18] or "0 32 18"
race(80, 91, 37) => [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.