题目连接:
URAL 1192
模拟了斜抛运动,每一次下降之后动能减损为原来的 1/K . 我一直以为是 动能每次减去一个K,害我调试了半天,关于能量减损的原话是这样说的:
after every fall, the kinetic energy of the ball decreases by a factor of K;
看来英语真的有必要重视.
模拟了斜抛运动,每一次下降之后动能减损为原来的 1/K . 我一直以为是 动能每次减去一个K,害我调试了半天,关于能量减损的原话是这样说的:
after every fall, the kinetic energy of the ball decreases by a factor of K;
看来英语真的有必要重视.
// URAL 1192. Ball in a Dream
// 每次落地减少为原来1/K的动能
/*test data
5 15 2.50
== 2.08
*/
#include <stdio.h>
#include <math.h>
const double g = 10.00;
const double pi = 3.1415926535;
double GetDistance(double v,double r){
return v * v * sin(2*r) / g;
}
double GetNextVelocity(double last,double d){
return last / sqrt(d);
}
void AngleToRadian(double &r){
r = r / 180.0 * pi;
}
int main()
{
// freopen("in.txt","r",stdin);
double v; // 初速度
double r; // 角度
double d; // 动能减损公差
while(scanf("%lf%lf%lf",&v,&r,&d)!=EOF){
double len = 0;
AngleToRadian(r);
while ( v > 0.01 ){
len += GetDistance(v,r);
v = GetNextVelocity(v,d);
}
printf("%.2lf\n",len);
}
return 0;
}