Skip to main content
  1. Problem Solving Solutions/

Angle between hour and minute hand

·1 min read
Problem Solving
Mayukh Datta
Author
Mayukh Datta

Read the problem statement here: https://practice.geeksforgeeks.org/problems/angle-between-hour-and-minute-hand/0

To solve this we have to keep two things in mind. First, hour hand completes 360 degrees in 12 hours.

360 degrees in (60 * 12) minutes = 720 minutes Then how many degrees in one minute = 360 / 720 degrees = 0.5 degrees

Second, minute hand completes 360 degrees in one hour i.e. 60 minutes

360 degrees in 60 minutes 1 minute = 360 / 60 degrees = 6 degrees

Remember, there are two corner cases too. Set both hour and minute to zero when their value is 12 and 60 respectively.

C++ code:

#include #include using namespace std; double findAngle(double h, double m){ double angle; //corner cases if(h == 12) h=0; if(m == 60) m=0; double hour_angle = (h * 60 + m) * 0.5; double min_angle = m * 6; angle = abs(hour_angle - min_angle); angle = min(360 - angle, angle); return angle; } int main() { int t; double h, m; scanf("%d", &t); while(t–){ scanf("%lf %lf", &h, &m); printf("%.f\n", floor(findAngle(h, m))); } return 0; }

Read this interesting article on clocks - Maths around the clock.