

【分析问题】
题目要求判断小A能否接住子弹。关键点:
- 子弹速度 v 米/秒,匀速直线运动
- 发射时距离小A为 s 米
- 子弹飞行时间 t = s / v 秒
- 不可控状态时间段:[a, b] 秒(包含端点)
- 如果子弹到达时间 t 不在 [a, b] 区间内,则可以接住
需要处理的情况:
- 如果 t < a 或 t > b,可以接住
- 如果 a ≤ t ≤ b,无法接住
- 注意 t 可能是小数,需要精确比较
边界情况:
- 当 t 正好等于 a 或 b 时,属于不可控状态
- v 可能为 0?但题目说子弹速度,应该 v > 0
- s 可能为 0?此时 t = 0,如果 a > 0 则可以接住
【建立模型(伪代码)】
输入:v, a, b, s
计算子弹飞行时间:t = s / v
如果 t < a 或者 t > b:
输出 "yes"
否则:
输出 "No"
【编写代码】
#include <iostream>
using namespace std;
int main(){
int v,a,b,s;
cin>>v>>a>>b>>s;
int time= s/v;
if(time<a || time>b){
cout<<"Yes";
}else{
cout<<"No";
}
return 0;
}
【保存编译运行】