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

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

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

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

本题主要是换算
首先我们看分针,分钟走一格需要60s
如果秒针刚好指向12点,那么分针的角度为
m*6(因为一格就是6度)
如果秒针不指向12点

60s走一格,即60s就是一度
则 分钟的度数为 m*6 + s/10;

再看时钟,时钟一格是56=30度
假如分钟和秒钟指向的是12点整,
时钟度数为h
30
假如分钟指向6点整,秒钟指向12点
时钟度数为h30 +m/2
60分钟 --------30度
那么一分钟6度
360度----------30度
即分钟的360度对应时钟30度
故时钟度数为 h
30+m/12

#include<iostream>
using namespace std;
int main()
{
	int T;
	cin>>T;
	double h,m,s;
	while(T--)
	{
		cin>>h>>m>>s;
		if(h>12)
		h=h-12;
		m=m*6+s/10;//度数 
		h = h*30 +m/12 - m;
		if(h<0)
			h=-h;
		if(h>180)
			h=360-h;
		cout<<int(h)<<endl;
	}
 } 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章