加特林大战僵尸
题目传送门
Description
现在又到了毛学姐玩生化危机的时间,问题很简单。现在有一把自动加特林机枪,它每秒发射一颗子弹,子弹的飞行速度是V0。在它的面前有L米的空地,你可以假设机枪是一个点。现在有个一只僵尸来袭,他以速度V1匀速向加特林机枪走去。僵尸被加特林子弹击中n次才会gg,僵尸在走到加特林机枪的位置后,会用酸液对其进行攻击,只需2s就能摧毁加特林。问:强大的加特林机枪能不能守住这块空地呢?
Input
输入包含多组数据,每组包含四个数L,V0,V1,n。保证所有数据在int类型范围内。
Output
如果加特林能干掉僵尸,请输出"YES",否则输出"NO"。
Sample Input 1
657 62 46 46
771 89 7 2
Sample Output 1
NO
YES
Hint
为了简化情况,不会出现僵尸和加特林同归于尽的情况。
题解
这个题用一个简单的极限思想就完全ok了,题目中的n可以看成僵尸从出现到死亡所需要的总时间,因此,我们只需要求出僵尸从出现到摧毁加特林的最大时间t后进行比较即可。如果n>t,就输出“NO”,反之,输出"YES"(不会出现n=t的情况)。
#include<stdio.h>
int main()
{
float L,V0,V1,n;
while(scanf("%f%f%f%f",&L,&V0,&V1,&n)!=EOF)
{
float t=L/V1+2;
if(n<t)printf("YES\n");
else printf("NO\n");
}
return 0;
}