Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 시침과 분침 사이의 각도에 세타가 주어지는 시간 찾기

<시간/>

하나의 세타 또는 각도 값이 있다고 가정합니다. 시침과 분침으로 각도를 생성하는 hh:mm 형식의 시간을 찾아야 합니다. 각도가 90°라고 가정하면 결과는 3:00이 될 수 있습니다.

12시간이 있는 것처럼 시간에는 12가지 가능성이 있고 분에는 60가지 가능성이 있습니다. 우리는 가능한 모든 시간을 반복할 것입니다. 임의의 시간에 대한 각도가 주어진 ta와 같으면 그 시간을 인쇄하십시오.

예시

#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