当前位置:   article > 正文

c语言编辑龟兔赛跑预测,[蓝桥杯][基础练习VIP]龟兔赛跑预测 (C++代码)

龟兔赛跑预测c语言

解题思路:

因为考虑到兔子会休息,然后此时兔子的时间是不会增加的,只有乌龟的时间在增加

对于while循环里面的代码,应该都是可以看懂的,在兔子走过的路程s1-s2(乌龟走过的路程)

t1++, t2++;

s1 = v1*t1;

s2 = v2*t2;

当>=t的时候,兔子休息,兔子原地不动,乌龟继续前进,

t2 += s;

s1 = v1*t1; //t1时间没有增加,相当于原地不动

s2 = v2*t2;//前进了s秒的路程

当超过终点后,就跳出while循环

if (s1 < s2)cout << "T\n" << l / v2<< endl;

这里,乌龟走到了终点,乌龟赢,所以时间就是路程/速度=时间

else if (s1 == s2)cout << "D\n" <

//这里当同时到达终点的时候,因为同时到达,肯定是兔子有过休息的,所以兔子到达终点的话,时间肯定不是兔子的

如样例  10  5  5 2  20

第一秒过后,达到相差5的条件,此时,s兔 = 10,s龟 = 5,t兔=t龟 = 1秒

然后兔子休息后,t兔=1,t龟 = 3秒,此时s兔=10,s龟=15;

下一秒后,都同时达到终点,样例时间是算乌龟的时间,所以平局时间算乌龟的时间

else cout << "R\n" << t2 << endl;

为什么兔子赢了也还是乌龟消耗的时间呢?(这里乌龟并没有达到终点)

如输入    10   5   5   1   40

s兔          s龟           t1          t2

10             5             1           1

10            10            1           2   //休息

20            15             2          3

20             20            2          4   //休息

30             25            3          5

30             30            3          6   //休息

40             35            4          7

所以看出来,兔子自己是用了4秒跑到终点,但是中途休息的时间也是要算进去的

休息了3次,就是4+3=7,也就是兔子用的时间,但是此时达到终点后,乌龟虽然还没到终点

但是时间是和兔子的时间一样的,所以兔子赢了,时间也是t2

注意事项:

参考代码:

a7949892dec2f80c820f484e22bd900c.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/64378
推荐阅读
相关标签
  

闽ICP备14008679号