首先,读数要求是实型;
其次,计算距离不对。
可以手动算一下,您的思路下,小鱼越游越快,但实际上小鱼越游越慢。
这是我的代码,仅供参考:
``` cpp
#include<iostream>
#include<cmath>
using std::cin;
using std::cout;
double di(int t)//第t秒时小于的位置
{
if(t==1) return 7.0;
else return 350.0*(1.0-pow(0.98,t));
//我比较懒,这里直接用了等比数列求和
//t=1必须单独列出,否则如果直接用公式的话#2会因为精度问题死活过不去(会返回7.000000000000006(反正就是一长串0后面缀个6),这点差别就会导致误判)
}
int main()
{
double s,x;
cin>>s>>x;
int t=0;
double m=s-x;
double M=s+x;
while(di(t)<m)
{
++t;
}
if(di(t+1)>M) cout<<"n";
else cout<<"y";
return 0;
}///(仅供参考)
```
by zhangshuge123 @ 2023-01-24 18:54:29
@[zhangshuge123](/user/557023) 好的,谢谢
by him0715 @ 2023-02-26 15:25:51