Formatted question description: https://leetcode.ca/all/1344.html

1344. Angle Between Hands of a Clock (Medium)

Given two numbers, hour and minutes. Return the smaller angle (in sexagesimal units) formed between the hour and the minute hand.

 

Example 1:

Input: hour = 12, minutes = 30
Output: 165

Example 2:

Input: hour = 3, minutes = 30
Output: 75

Example 3:

Input: hour = 3, minutes = 15
Output: 7.5

Example 4:

Input: hour = 4, minutes = 50
Output: 155

Example 5:

Input: hour = 12, minutes = 0
Output: 0

 

Constraints:

  • 1 <= hour <= 12
  • 0 <= minutes <= 59
  • Answers within 10^-5 of the actual value will be accepted as correct.

Related Topics:
Math

Solution 1.

// OJ: https://leetcode.com/problems/angle-between-hands-of-a-clock/
// Time: O(1)
// Space: O(1)
class Solution {
public:
    double angleClock(int h, int m) {
        double a = h * 30 + m * 0.5, b = m * 6, d = abs(a - b);
        return min(d, 360 - d);
    }
};

Java

  • class Solution {
        public double angleClock(int hour, int minutes) {
            double hoursDegree = hour * 30 + minutes * 30.0 / 60;
            int minutesDegree = minutes * 6;
            double angle = Math.abs(minutesDegree - hoursDegree);
            if (angle > 180)
                angle = 360 - angle;
            return angle;
        }
    }
    
  • // OJ: https://leetcode.com/problems/angle-between-hands-of-a-clock/
    // Time: O(1)
    // Space: O(1)
    class Solution {
    public:
        double angleClock(int h, int m) {
            double a = h * 30 + m * 0.5, b = m * 6, d = abs(a - b);
            return min(d, 360 - d);
        }
    };
    
  • print("Todo!")
    

All Problems

All Solutions