สมมติว่าเรามีค่าชั่วโมงและนาที เราต้องหามุมเล็กกว่าที่เกิดระหว่างเข็มชั่วโมงและเข็มนาที
เช่น ถ้าอินพุตเป็น hour = 12 minutes = 45 ผลลัพธ์จะเป็น 112.5

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนต่อไปนี้:
ถ้า h = 12 ให้ตั้ง h := 0
ถ้า m = 60 ให้ตั้ง m := 0
hAngle := 0.5 * (60*h + m)
mAngle := 6*m
ret := |hAngle - mAngle|
คืนค่า min ของ ret และ (360 - ret)
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; class Solution { public: double solve(int h, int m) { if(h == 12) h = 0; if(m == 60) m = 0; double hAngle = 0.5*((60 * h) + m); double mAngle = 6 * m; double ret = abs(hAngle - mAngle); return min(360 - ret, ret); } }; main(){ Solution ob; cout << (ob.solve(12, 45)); }อินพุต
12, 45
เอาต์พุต
112.5