题解:P16466 [GKS 2013 Practice] Captain Hammer
一道题居然能涨这么多知识
思路
物理斜抛模型计算题。由斜抛射程公式先用反正弦求出弧度值,再转角度除以二就是所求最小仰角。
斜抛运动
斜抛运动是将物体斜向射出,在重力作用下,物体作曲线运动,它的运动轨迹是抛物线,这种运动叫做“斜抛运动”。
抛体运动水平射程公式为
code
#include<bits/stdc++.h>
using namespace std;
#define double long double
double g=9.8;
double p=acos(-1.0);//π
int main()
{
cout<<fixed<<setprecision(7);//先设置好输出格式
int t;
cin>>t;
for(int i=1;i<=t;i++)
{
double v,d;
cin>>v>>d;
double s=d*g/(v*v);
if(s>1.0) s=1.0;//防止浮点误差,超出[-1,1]
double r=asin(s);//计算s的反正弦值
double a=r*180.0/p/2.0;
cout<<"Case #"<<i<<": "<<a<<'\n';
}
return 0;
}