สมมติว่าเรามีค่าทีต้าหรือค่ามุมหนึ่งค่า เราต้องหาครั้งเดียวในรูปแบบ hh:mm ที่สร้างมุมด้วยเข็มชั่วโมงและนาที สมมติว่ามุมคือ 90° ผลลัพธ์ที่ได้จะเป็น 3:00
เนื่องจากมีเวลา 12 ชั่วโมง ดังนั้นจึงมีความเป็นไปได้ 12 อย่างสำหรับชั่วโมงและ 60 อย่างสำหรับนาที เราจะวนซ้ำตลอดเวลาที่เป็นไปได้ หากมุมของเวลาใดๆ เท่ากับทีต้าที่กำหนด ให้พิมพ์เวลานั้น
ตัวอย่าง
#include<iostream> #include<cmath> using namespace std; float angleFromClockHand(int hour, int minute) { float hour_angle = 0.5 * (hour*60 + minute); float minute_angle = 6*minute; float angle = abs(hour_angle - minute_angle); angle = min(360-angle, angle); return angle; } void findTime(float theta) { for (int hour=0; hour<12; hour++) { for (int min=0; min<60; min++) { if (angleFromClockHand(hour, min)==theta) { cout << hour << ":"<< min; return; } } } cout << "Unable to find time"; } int main() { float angle = 45.0; findTime(angle); }
ผลลัพธ์
4:30