题目
输入
输出
思路
题目已知a,b点坐标,以及三角形面积,求o点的x值。
联想到向量叉乘求三角形面积的公式。
于是得到|(xa-x)yb-ya(xb-x)|=4;
化简得到xayb-xbya+(ya-yb)x=+-4;
第一种情况ya=yb,消去x,即只有xayb-xbya=4或xayb-xbya=-4,x就可以是任意值;
第二种情况移项,x=(4+x2y1-x1y2)/(y1-y2);
因为面积误差 ≤0.001,所以最好保留10位小数。
完整代码
```#include<bits/stdc++.h>
using namespace std;
int main(){
double x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
if(y1==y2)
if(x1*y2-x2*y1==4||x1*y2-x2*y1==-4) cout<<0.0;
else cout<<"no answer";
else{
double ans=(4+x2*y1-x1*y2)/(y1-y2);
cout<<fixed<<setprecision(10)<<ans;
}
return 0;
}

京公网安备 11010502036488号