概述:一辆车要转弯,给出以下条件,问是否能转过弯。
思路:要使汽车能转过此弯道,那么就是汽车的左边尽量贴着那个直角点,而汽车的右下后方的点尽量贴着最下面的边。
感想:学好高中物理很重要。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
const double PI = 3.1415;
using namespace std;
double l, x, y, w;
double cal(double a)
{
return l*cos(a) + (w - x*cos(a)) / sin(a);
}
double finda(double l, double r)
{
double tempL, tempR;
while (r - l>1e-4)
{
tempL = (2 * l + r) / 3;
tempR = (2 * r + l) / 3;
if (cal(tempL)>cal(tempR))
r = tempR;
else
l = tempL;
}
return r;
}
int main()
{
while (cin >> x >> y >> l >> w)
{
double l = 0, r = PI / 2;
if (cal(finda(0, PI / 2)) <= y)
cout << "yes" << endl;
else
cout << "no" << endl;
}
return 0;
}
387

被折叠的 条评论
为什么被折叠?



