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;
	}
 } 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章