Tortoise racing

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 (don't worry for fractions of second).

If v1 >= v2 then return nil, nothing, null, None or {-1, -1, -1} for C++, C, Go, Nim.
Examples

race(720, 850, 70) => [0, 32, 18]
race(80, 91, 37) => [3, 21, 49]

Good Solution1:

public class Tortoise {

    public static int[] race(int v1, int v2, int g) {
        if (v1 >= v2)
            return null;
        int seconds = (g * 3600) / (v2 - v1);
        return new int[]{seconds / 3600, (seconds % 3600) / 60, seconds % 60};
    }
}

你可能感兴趣的:(Tortoise racing)