夹角有多大(题目已修改,注意读题)
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;
}
}