MiYu原创, 转帖请注明 : 转载自 ______________白白の屋

题目地址:
         http://acm.hdu.edu.cn/showproblem.php?pid=2080
题目描述:

Problem Description
这次xhd面临的问题是这样的:在一个平面内有两个点,求两个点分别和原点的连线的夹角的大小。

注:夹角的范围[0,180],两个点不会在圆心出现。

Input
输入数据的第一行是一个数据T,表示有T组数据。
每组数据有四个实数x1,y1,x2,y2分别表示两个点的坐标,这些实数的范围是[-10000,10000]。

Output
对于每组输入数据,输出夹角的大小精确到小数点后两位。

Sample Input
2
1 1 2 2
1 1 1 0

Sample Output
0.00
45.00

题目分析:
         纯数学题.   有多边型面积公式, 我们可以得到 三角型的面积 : S = ( x0 * y1 - x1 * y0 ) / 2.
而由三角型正弦定理我们知道 : S = 1 / 2 * A * B * sinV . 联立 2方程就可以得到 夹角V 的解
的方程 :  sinV =  ( x0 * y1 - x1 * y0 ) / A / B ;       最后利用 c 数学库函数 asin就可以求出V的弧
度值, 把弧度转换成角度就可以了.   ( 注意平角和钝角的判断 )

代码如下 :

MiYu原创, 转帖请注明 : 转载自 ______________白白の屋

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main ()
{
    int T;
    cin >> T;
    while ( T -- )
    {
            double x0,x1,y0,y1;
            cin >> x0 >> y0 >> x1 >> y1;
            double A = sqrt ( x0 * x0 * 1.0 + y0 * y0 * 1.0 );
            double B = sqrt ( x1 * x1 * 1.0 + y1 * y1 * 1.0 );
            double resin = ( fabs ( x0 * y1 - x1 * y0 ) ) / A / B ;
            double res = asin ( resin ) * 180.0 / acos( -1 );
            res = res < 1e-5 ? ( x0 * x1 < 0 ? 180.0 : 0.0 )                          //平角 
                             : ( x0 * x1 <= 0 && y0 * y1 <= 0 ? 180.0 - res : res );  //是否钝角                        
            cout << setprecision (2) << setiosflags ( ios::fixed ) << res << endl;
    }
    return 0; 
}

转载于:https://www.cnblogs.com/MiYu/archive/2010/08/18/1802460.html

HDOJ HDU 2080 夹角有多大II ACM 2080 IN HDU相关推荐

  1. HDU 2080 夹角有多大II

    夹角有多大II Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  2. HDU2080 夹角有多大II【数学】

    夹角有多大II Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  3. HDU2080 夹角有多大II

    夹角有多大II Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  4. HDOJ 1253 HDU 1253 胜利大逃亡 ACM 1253 IN HDU

    MiYu原创, 转帖请注明 : 转载自 ______________白白の屋   题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1253 题目描述: ...

  5. HDU 2076 夹角有多大(题目已修改,注意读题)

    Problem Description 时间过的好快,一个学期就这么的过去了,xhd在傻傻的看着表,出于对数据的渴望,突然他想知道这个表的时针和分针的夹角是多少.现在xhd知道的只有时间,请你帮他算出 ...

  6. HDOJ 2199 HDU 2199 Can you solve this equation? ACM 2199 IN HDU

    MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址:          http://acm.hdu.edu.cn/showproblem.php?pid=2199 ...

  7. HDOJ 1157 HDU 1157 Who's in the Middle ACM 1157 IN HDU

    MiYu原创, 转帖请注明 : 转载自 ______________白白の屋   题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1157 题目描述: ...

  8. HDU题目分类大全【大集合】

    基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.  1032.1037.1040.1048.1056.105 ...

  9. HDU2076 夹角有多大

    夹角有多大(题目已修改,注意读题) Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

最新文章

  1. hibernate框架学习第二天:核心API、工具类、事务、查询、方言、主键生成策略等...
  2. 重新初始化k8s master节点
  3. python api是什么_python – 如何处理API响应
  4. SQL-22 统计各个部门对应员工涨幅的次数总和,给出部门编码dept_no、部门名称dept_name以及次数sum...
  5. 深入理解mysql百度网_深入理解mysql
  6. iText生成pdf详解
  7. kafka 重新分配节点_你可能需要的Kafka面试题与部分答案整理
  8. java俄罗斯方块说明书_俄罗斯方块java代码(java编写俄罗斯方块代码详解)
  9. linux 番茄时间,Linux下自制简易番茄钟
  10. Diamond软件的使用(5)--建立Modelsim仿真环境
  11. MPU6050姿态解算——Mahony互补滤波
  12. java程序员面试自我介绍范文
  13. C++编译遇到未定义的引用undefined reference to ‘_imp__ZN7CStringD1Ev‘
  14. 微信小程序授权订阅消息判断用户取消或允许
  15. php授权微信自动扣款,【微信支付】微信代扣开发者文档
  16. 菏泽一中2021级高考成绩查询入口,2021年菏泽中考各学校录取分数线,历年菏泽中考分数线汇总...
  17. C语言训练-3426-小金追呀追不上妹子
  18. 当技术为组织所累时怎么办?将你的组织架构旋转90度!
  19. c语言中用户验证程序,C语言用户登录系统账户密码比对
  20. 【初等概率论】 02

热门文章

  1. 给别人电脑永远设置个别人删不掉的管理员用户
  2. T-SQL: 17 个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受 @@DateFirst、语言版本影响...
  3. s7-200与计算机modbus通讯案例,西门子200MODBUS通讯案例.doc
  4. 增加自增列 耗时长_又一批长事务,P0故障谁来背锅?
  5. 如何利用CIC滤波器、CIC补偿滤波器和半带滤波器设计一个高频数字抽取滤波器
  6. 递归式求时间复杂度的代入法与迭代法的举例讲解
  7. html底部沉底显示,Footer部分永远沉底。
  8. 解决Moodle日历乱码的最佳方案
  9. 这样是不是就可以预测语音长度和内容了
  10. python将视频转为多个gif