codewars-----c++ 刷题记录

题目:

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;
    }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值