用 C++ 查詢時針和分針之間的夾角為給定值 theta 的相關時間


假設我們有一個 theta,或角度值。我們必須查詢 hh:mm 格式的時間,它透過時針和分針之間的夾角來建立。假設角度為 90°,則結果可以為 3:00。

由於有 12 小時,因此對於小時有 12 個可能的值,對於分鐘有 60 個可能的值。我們將迴圈瀏覽所有可能的時間。如果任何時間的角度與給定的 theta 相同,則列印該時間。

示例

 線上演示

#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

更新於: 18-12-2019

104 人瀏覽

開始你的 職業

透過完成本課程獲得認證

開始學習
廣告
© . All rights reserved.