题目链接:
L3-013 非常弹的球 (30分)
思路:
我们由动能公式可以求得速度
设ang为,则水平速度为,竖直速度为
由于空气阻力等忽略不计,小球达到最高点所需时间,根据物理常识我们可知到达地面和升到最高点时间一致,因此从抛出到落地总时间为,小球水平移动的总距离,当为时取最大值;
似乎从地上再次弹起来的角度还是刚开始抛出的角度?不知道,物理都忘光了
然后依次开始下一个循环直到答案满足精度需求;
代码:
#include<bits/stdc++.h>
using namespace std;
const double eps = 1e-9;
const double g = 9.8;
int main() {
#ifdef MyTest
freopen("Sakura.txt", "r", stdin);
#endif
double w, p, ans = 0;
scanf("%lf %lf", &w, &p);
for(double e = 1000; e > eps; e *= 1 - p / 100) {
ans += 200 * e / w / g;
}
printf("%.3f", ans);
return 0;
}