HDU 2080 夹角有多大II(余弦公式)
2016-07-20 19:00
351 查看
夹角有多大II
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9884 Accepted Submission(s): 5062
[align=left]Problem Description[/align]
这次xhd面临的问题是这样的:在一个平面内有两个点,求两个点分别和原点的连线的夹角的大小。
注:夹角的范围[0,180],两个点不会在圆心出现。
[align=left]Input[/align]
输入数据的第一行是一个数据T,表示有T组数据。
每组数据有四个实数x1,y1,x2,y2分别表示两个点的坐标,这些实数的范围是[-10000,10000]。
[align=left]Output[/align]
对于每组输入数据,输出夹角的大小精确到小数点后两位。
[align=left]Sample Input[/align]
2
1 1 2 2
1 1 1 0
[align=left]Sample Output[/align]
0.00
45.00
[align=left]Author[/align]
xhd
[align=left]Source[/align]
ACM程序设计期末考试_热身赛(感谢
xhd & 8600)
[align=left]Recommend[/align]
lcy | We have carefully selected several similar problems for you: 2086 2079 2082 2077 2084
题解:余弦公式。水题。。。
AC代码:
#include<stdio.h> #include<cmath> #include<iostream> using namespace std; struct zhi { double x,y; }; double dist(zhi a,zhi b) { return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); } double dist1(zhi a) { return sqrt((a.x)*(a.x)+(a.y)*(a.y)); } int main() { int t; zhi a,b; scanf("%d",&t); while(t--) { cin>>a.x>>a.y>>b.x>>b.y; double d1=dist1(a); double d2=dist1(b); double d3=dist(a,b); //cout<<d1<<endl<<d2<<endl<<d3; double ans=0; ans=(acos((d3*d3-d1*d1-d2*d2)/(2*d1*d2))/acos(-1.0)*180); ans=fabs(ans-180); printf("%.2lf\n",ans); } return 0; }
相关文章推荐
- Yarn中几个专用名称
- Qt qml listview刷新
- HDU1753 大明A+B(带小数的大数加法)
- Unity 中gameObject.SetActive()方法的使用
- [Leetcode]216. Combination Sum III
- Java GC 日志分析秒懂!
- codeforces水题100道 第二十二题 Codeforces Beta Round #89 (Div. 2) A. String Task (strings)
- 自创控件Topbar
- String 类的基本用法
- 棋盘问题
- 外部css样式改变,刷新E网页没改变
- flashback table to before drop外键约束无法恢复的原因分析
- Linux下非root用户能创建新文件,却不能拷贝文件的问题
- poj2438 Children's Dining(哈密尔顿回路)
- memcached存储大数据的问题
- 使用 java 命令编译运行 java 程序
- Codeforces 154B Colliders
- UGUI实现帧动画
- 创业挣的首先是认知,接下来才是钱
- 如想给一个easyui的combobox组件在获取json数据之前添加数据