夾角有多大(題目已修改,注意讀題)
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點整,
時鐘度數爲h30
假如分鐘指向6點整,秒鐘指向12點
時鐘度數爲h30 +m/2
60分鐘 --------30度
那麼一分鐘6度
360度----------30度
即分鐘的360度對應時鐘30度
故時鐘度數爲 h30+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;
}
}