Given two numbers, hour
and minutes
, return the smaller angle (in degrees) formed between the hour
and the minute
hand.
Answers within 10-5
of the actual value will be accepted as correct.
Example 1:
Input: hour = 12, minutes = 30 Output: 165
思路:算hourhand和minhand,
// 12 hours -> 360; => 1 hour -> 30, 60 min -> 30;
// 60 mins -> 360;
// hour里面对应的min度数 是跟min里面对应的度数是不一样的
// 时钟指针60min对应的是30度;
// 分针指针60min对应的是360度;
class Solution {
public double angleClock(int hour, int minutes) {
// 12 hours -> 360; => 1 hour -> 30, 60 min -> 30;
// 60 mins -> 360;
// hour里面对应的min度数 是跟min里面对应的度数是不一样的
// 时钟指针60min对应的是30度;
// 分针指针60min对应的是360度;
double hourAngle = hour * (360 / 12) + minutes * ((double)30 / 60);
double minAngle = minutes * (360 / 60);
double diff = Math.abs(hourAngle - minAngle);
return diff > 180 ? 360 - diff : diff;
}
}