7-94 非常弹的球 (30分)
图片来自前辈的,来源博客链接:https://www.cnblogs.com/8023spz/p/10415991.html
根据图上可得Smax=v^2/g,再联立Ek=1/2mv*v,得到最大距离公式:
s=2Ek /(mg)
然后每次让Ek缩减,即每次缩减了p%;循环缩小精度即可
注意 题目给的是放大的m,所以计算时m除以100才行;
推荐另一前辈博客:(写的很详细了)
https://blog.csdn.net/weixin_43824158/article/details/88747876
AC代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
//公式:s=2*Ek/(m*g) //这里的m未放大的,题目是放大的
int w,p;
cin>>w>>p;
double dis=0;
double s=1000*100*2/(w*9.80);
while(s>=1e-9)
{
dis+=s;
s=s-s*p/100;//能力不停的损失
}
cout<<fixed<<setprecision(3)<<dis<<endl;
return 0;
}
欢迎大家批评改正!!!