题解 | #氧气少年很幸运#

氧气少年很幸运

https://ac.nowcoder.com/acm/contest/83181/A

H

高中物理 分两种情况,具体看代码。 alt

alt

using namespace std;
double r, d, v, a, o;

int main(void)
{
    cin >> r >> d >> v >> a >> o;
    double h = r * cos(o);
    if (d <= h)//图1的情况
    {
        double l = r * asin(d / r);
        double L = 0, R = 10000;

        for (int i = 1; i <= 100; i++)//解一元二次方程,二分答案
        {
            double mid = (L + R) / 2;
            if (0.50000 * a * mid * mid + v * mid - l < 0)L = mid;
            else R = mid;
        }
        printf("%.10lf", L );
    }
    else//图2的情况
    {
        double o1 = asin(d / r);
        double o2 = asin(h / r);
        double t1 = (o1 - o2) * r / v;//匀速时间

        double l = r * asin(h / r);
        double L = 0, R = 10000;

        for (int i = 1; i <= 100; i++)
        {
            double mid = (L + R) / 2;
            if (0.50000 * a * mid * mid + v * mid - l < 0)L = mid;
            else R = mid;
        }
        printf("%.10lf",L+t1);
    }
    return 0;

}



全部评论
想请问一下这个直接算会有精度问题吗,有什么判断的方法吗
点赞 回复 分享
发布于 06-02 09:28 加拿大

相关推荐

主页这么好的公司是谁在进啊:虽然很想感谢你的分享,但是此刻的嫉妒和酸气已经涌上心头,所以我撤销一下对你的感谢吧,希望你能原谅我
点赞 评论 收藏
分享
2 收藏 评论
分享
牛客网
牛客企业服务