можно исправить?
static std::vector<int> race(int v1, int v2, int g)
{
if (v1 > v2) { return std::vector<int>{ -1,-1,-1 }; }
int subV = v2 - v1;
float t = (g * 1.0f / subV);
float h = t;
float m = (t - (int)t) * 60;
float s = (m - (int)m) * 60;
return std::vector<int>{ static_cast<int>(h), static_cast<int>(m), static_cast<int>(s) };
}
=================================
Expected: equal to [ 1, 25, 12 ]
Actual: [ 1, 25, 11 ]
а что за задача
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?
а округляем точно туда?
я нигде ниче не округляю ж
> static_cast<int>(s) очень округляюще вниз выглядит
При return std::vector<int>{ (int)floor(h), (int)floor(m), (int)floor(s) }; Получаю: Expected: equal to [ 0, 6, 5 ] Actual: [ 0, 6, 4 ] При return std::vector<int>{ (int)floor(h), (int)round(m), (int)floor(s) }; Получаю Expected: equal to [ 3, 21, 49 ] Actual: [ 3, 22, 49 ] ((
Возможно, стоит подумать, а не вносить случайные правки в код :)
Ну тогда просто поверьте, что надо получить целый ответ в секундах, а потом его представлять как h, m, s
Обсуждают сегодня