解法一

纯数学问题,以0点为原点,沿顺时针方向增加角度,分别计算分针和时针的角度并求差,注意范围。

  1. class Solution {
  2. public double angleClock(int hour, int minutes) {
  3. // 分针角度
  4. double angle_1 = minutes * 6.0;
  5. // 时针角度
  6. double angle_2 = hour * 30.0 + minutes / 2.0;
  7. if (angle_2 >= 360.0) {
  8. angle_2 -= 360.0;
  9. }
  10. double ans = Math.abs(angle_1 - angle_2);
  11. return Math.min(ans, 360.0 - ans);
  12. }
  13. }