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


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


Algorithm Analyse 我们知道,时针走30°/小时,分针走6°/分钟。
所有
时针走:30°/h = 0.5°/m = (1/120)°/s
分针走: 6°/m = 0.1°/s
所有在h:m:s时,时针的角度为30*h + m/2 + s/120;分针的角度为:6*m + s/10;
所有它们的夹角为fabs(30*h + m/2 + s/120 – 6*m – s/10) = fabs(30*h – 11*m/2 – 11*s/120)
注意:在h>12时要减去12


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Author: Tanky Woo
// HDOJ 2076
// Accepted 2076 0MS 220K 490 B C++ Tanky Woo 
#include<iostream>
#include <algorithm>
#include <cmath>
using namespace std;
 
int main()
{
    int n;
    double h, m, s;  //虽然题目说是整数,但是用double无疑要方便多了
 
    scanf("%d", &n);
    while (n-- && scanf("%lf %lf %lf", &h, &m, &s))
    {
        if (h > 12) h -= 12;  // 注意!
		if(fabs(30*h-11*m/2-11*s/120) > 180)
			printf("%d\n", (int)(360-fabs(30*h-11*m/2-11*s/120)));
		else
			printf("%d\n", (int)(fabs(30*h-11*m/2-11*s/120)));
    }
    return 0;
}

发布者

Tanky Woo

Tanky Woo,[个人主页:https://tankywoo.com] / [新博客:https://blog.tankywoo.com]

发表评论

电子邮件地址不会被公开。 必填项已用*标注