绝世高手

【分析问题】
题目要求判断小A能否接住子弹。关键点:

  • 子弹速度 v 米/秒,匀速直线运动
  • 发射时距离小A为 s 米
  • 子弹飞行时间 t = s / v 秒
  • 不可控状态时间段:[a, b] 秒(包含端点)
  • 如果子弹到达时间 t 不在 [a, b] 区间内,则可以接住

需要处理的情况:

  1. 如果 t < a 或 t > b,可以接住
  2. 如果 a ≤ t ≤ b,无法接住
  3. 注意 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;
}

【保存编译运行】