您的位置:首页 > 其它

玲珑学院OJ 1131 - 喵哈哈村的几何大师╰☆莣メ誋こ月【高中数学】

2017-05-30 18:57 295 查看
1131 - 喵哈哈村的几何大师╰☆莣メ誋こ月

Time Limit:1s Memory Limit:256MByte

Submissions:249Solved:48

DESCRIPTION

╰☆莣メ誋こ月是月大叔的ID,他是一个掌握着429种几何画法的的几何大师,最擅长的技能就是搞事,今天他又要开始搞事了。



给你一个等腰三角形,其中A,B,C,D角已知,求E角的角度。

INPUT

输入第一行包含一个正整数t(1≤t≤100)t(1≤t≤100)
,表示有t组数据对于每组数据:第二行四个整数,A,B,C,D表示度数。满足A+B=C+D且A+B<90

OUTPUT

对于每组测试数据的询问,输出E角的度数,请保留两位小数。

SAMPLE INPUT

1
10 70 20 60

SAMPLE OUTPUT

20.00

思路:

随便套套余弦定理的公式和正弦定理的公式就能解决的问题。

然而Wa到死。

注意已知一个角的sin值,如果用arcsin来求角度的话,默认输出较小角的值。

所以求角度的时候应该用arccos= =

智障了= =比赛过程中卡了3个小时这个题= =

Ac代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<set>
#include<queue>
#include<map>
#include<cmath>
#define N 200005
#define LL long long
using namespace std;

int T;
const double PI=acos(-1);
double hudu(double du)
{
double huduu=(double)PI/(double)180*du;
return huduu;
}
int main()
{
// freopen("D:\\j1.in", "r", stdin);
// freopen("D:\\5out.txt", "w", stdout);
int t;
scanf("%d",&t);
while(t--)
{
double a,b,c,d;
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
double A=1;
double ss=180.0;
double tmp=ss-a-b-c-d;
double C=sqrt(A*A+A*A-2.0*A*A*cos(hudu(tmp)));
double f=ss-b-c-d;
double D=C*sin(hudu(b))/sin(hudu(f));
double g=ss-b-d;
double h=ss-g;
double E=D*sin(hudu(c))/sin(hudu(h));
double x=ss-a-b-d;
double G=C*sin(hudu(d))/sin(hudu(x));
double F=G*sin(hudu(a))/sin(hudu(h));
double Z=sqrt(E*E+F*F-2.0*E*F*cos(hudu(g)));
double coseee=(E*E+Z*Z-F*F)/(2*E*Z);
double ans=(double)ss/PI*acos(coseee);
printf("%.2lf\n",ans);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  玲珑学院OJ 1131