HDU2076 夹角有多大(题目已修改,注意读题)【水题】【计算几何】

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


Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 10194    Accepted Submission(s): 4072

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

注:夹角的范围[0,180],时针和分针的转动是连续而不是离散的。
 
Input
输入数据的第一行是一个数据T,表示有T组数据。
每组数据有三个整数h(0 <= h < 24),m(0 <= m < 60),s(0 <= s < 60)分别表示时、分、秒。
 
Output
对于每组输入数据,输出夹角的大小的整数部分。
 
Sample Input
2
8 3 17
5 13 30
 
Sample Output
138
75
 
Author
xhd
 
Source

ACM程序设计期末考试_热身赛(感谢 xhd & 8600)


思路:分别求出分针和时针到12:00的夹角,并判断两者夹角是否大于180。

最后的时候,在强制转换成整型输出。


#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;

int main()
{
    int T;
    cin >> T;
    while(T--)
    {
        double h,m,s;
        cin >> h >> m >> s;
        if(h > 12)
            h -= 12;
        double angle1,angle2;
        m += s/60;
        angle1 = m*360/60;
        h += m/60;
        angle2 = h*360/12;
        double ans = fabs(angle1-angle2);
        if(ans > 180)
            ans = 360 - ans;
        cout << (int)ans << endl;
    }

    return 0;
}


你可能感兴趣的:(HDU2076 夹角有多大(题目已修改,注意读题)【水题】【计算几何】)