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 speed is 850 feet per hour. How long will it take B to catch A?
More generally: given two speeds v1 (A speed, integer > 0) and v2 (B speed, integer > 0) and a lead g (integer > 0) how long will it take B to catch A?
The result will be an array [h, mn, s] where h, mn, s 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]
Note: you can see some other examples in "Your test cases".
思路:
物理計算問題,重點在計算的時候要先把數字轉為浮點數後再轉回整數回傳
使用到的語法:
if和數學計算式
程式碼:
def race(v1, v2, g)
if v1 >= v2
return nil
else
t = ((g.fdiv(v2 - v1)) * 3600).to_i
result = [t / 3600,(t / 60) % 60, t % 60]
end
end