Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm thời gian mà góc giữa kim giờ và kim phút được cho trong C ++

Giả sử chúng ta có một giá trị theta, hoặc góc. Chúng ta phải tìm một thời gian ở định dạng hh:mm, tạo góc bằng kim giờ và kim phút. Giả sử góc là 90 °, thì kết quả có thể là 3:00.

Vì có 12 giờ nên có 12 khả năng là giờ và 60 khả năng là phút. Chúng tôi sẽ lặp lại tất cả các thời gian có thể. Nếu góc của bất kỳ thời điểm nào giống với thời điểm đã cho, thì in thời gian đó.

Ví dụ

#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);
}

Đầu ra

4:30