题目链接:P1426 小鱼会有危险吗 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题目描述
有一次,小鱼要从 A 处沿直线往右边游,小鱼第一秒可以游 7 米,从第二秒开始每秒游的距离只有前一秒的 98%。有个极其邪恶的猎人在距离 A 处右边 s 米的地方,安装了一个隐蔽的探测器,探测器左右 x 米之内是探测范围。一旦小鱼进入探测器的范围,探测器就会在这一秒结束时把信号传递给那个猎人,猎人在一秒后就要对探测器范围内的水域进行抓捕,这时如果小鱼还在这范围内就危险了。也就是说小鱼一旦进入探测器范围,如果能在下 1 秒的时间内马上游出探测器的范围,还是安全的。现在给出 s 和 x 的数据,请你判断小鱼会不会有危险?如果有危险输出 y,没有危险输出 n。
输入格式
一行内输入两个实数,用空格分隔,表示 s 和 x。
输出格式
一行内输出 'y' 或者 'n' 表示小鱼是否会有危险。
样例 #1
样例输入 #1
14 1
样例输出 #1
n
提示
数据规模与约定
对于 100% 的数据,保证 1 <= s,x <= 100,小数点后最多有 6 位小数。
AC code:
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
double s,x;
cin>>s>>x;
double l=s-x;
double r=s+x;
double dis=0;
if(l<=dis && dis<=r && dis+7<=r)
{
cout<<"y";
return 0;
}
while(dis<=r)
{
static double t=7;
dis+=t;
if(l<=dis && dis<=r)
{
if(dis+t*0.98>r)
{
cout<<"n";
return 0;
}
else
{
cout<<"y";
return 0;
}
}
t=t*0.98;
}
cout<<"n";
return 0;
}