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;
}
歡迎大家批評改正!!!