题目:
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?
分析:首先b会快一下才能追上a,所以我们假设a是不动的,然后用a比吧快的速度去跑70英尺那样就会得出
70 / (850 - 720) = 70 / 130 = 0.538(H)
然后把他转化成时间
70 * 60 * 60 / (850 - 720) = 70 * 3600 / 130 = 1938(S)
这个就是时间
所以我们得出
time = g * 3600 / (v2 - v1);
附上完整代码
class Tortoise
{
public:
static std::vector<int> race(int v1, int v2, int g)
{
std::vector<int> one;
if(v1>v2)
{
one.push_back(-1);
one.push_back(-1);
one.push_back(-1);
return one;
}
int time = g * 3600 / (v2 - v1);
int hours = time / 3600;
int min = time % 3600 / 60;
int sed = time % 60;
one.push_back(hours);
one.push_back(min);
one.push_back(sed);
return one;
}
};