#include <stdio.h>
#include <stdlib.h>
// Utility function to find minimum of two integers
int min(int x, int y) { return (x < y)? x: y; }
int calcAngle(double h, double m)
{
// validate the input
if (h <0 || m < 0 || h >12 || m > 60)
if (h == 12) h = 0;
if (m == 60) m = 0;
// Calculate the angles moved by hour and minute hands
// with reference to 12:00
int hour_angle = 0.5 * (h*60 + m);
int minute_angle = 6*m;
// Find the difference between two angles
int angle
= abs(hour_angle
- minute_angle
);
// Return the smaller angle of two possible angles
angle = min(360-angle, angle);
return angle;
}
// Driver program to test above function
int main()
{
printf("%d \n", calcAngle
(1, 2)); printf("%d \n", calcAngle
(3, 30)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCi8vIFV0aWxpdHkgZnVuY3Rpb24gdG8gZmluZCBtaW5pbXVtIG9mIHR3byBpbnRlZ2VycwppbnQgbWluKGludCB4LCBpbnQgeSkgeyByZXR1cm4gKHggPCB5KT8geDogeTsgfQoKaW50IGNhbGNBbmdsZShkb3VibGUgaCwgZG91YmxlIG0pCnsKICAgIC8vIHZhbGlkYXRlIHRoZSBpbnB1dAogICAgaWYgKGggPDAgfHwgbSA8IDAgfHwgaCA+MTIgfHwgbSA+IDYwKQogICAgICAgIHByaW50ZigiV3JvbmcgaW5wdXQiKTsKCiAgICBpZiAoaCA9PSAxMikgaCA9IDA7CiAgICBpZiAobSA9PSA2MCkgbSA9IDA7CgogICAgLy8gQ2FsY3VsYXRlIHRoZSBhbmdsZXMgbW92ZWQgYnkgaG91ciBhbmQgbWludXRlIGhhbmRzCiAgICAvLyB3aXRoIHJlZmVyZW5jZSB0byAxMjowMAogICAgaW50IGhvdXJfYW5nbGUgPSAwLjUgKiAoaCo2MCArIG0pOwogICAgaW50IG1pbnV0ZV9hbmdsZSA9IDYqbTsKCiAgICAvLyBGaW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIGFuZ2xlcwogICAgaW50IGFuZ2xlID0gYWJzKGhvdXJfYW5nbGUgLSBtaW51dGVfYW5nbGUpOwoKICAgIC8vIFJldHVybiB0aGUgc21hbGxlciBhbmdsZSBvZiB0d28gcG9zc2libGUgYW5nbGVzCiAgICBhbmdsZSA9IG1pbigzNjAtYW5nbGUsIGFuZ2xlKTsKCiAgICByZXR1cm4gYW5nbGU7Cn0KCi8vIERyaXZlciBwcm9ncmFtIHRvIHRlc3QgYWJvdmUgZnVuY3Rpb24KaW50IG1haW4oKQp7CiAgICBwcmludGYoIiVkIFxuIiwgY2FsY0FuZ2xlKDEsIDIpKTsKICAgIHByaW50ZigiJWQgXG4iLCBjYWxjQW5nbGUoMywgMzApKTsKICAgIHJldHVybiAwOwp9