C++程式:計算時鐘時針和分針之間的夾角?


假設我們有兩個值:小時和分鐘。我們需要找到時針和分針之間形成的較小夾角。

所以,如果輸入類似於小時 = 12 分鐘 = 45,則輸出將為 112.5

為了解決這個問題,我們將遵循以下步驟

  • 如果 h = 12,則將 h 設定為 0

  • 如果 m = 60,則將 m 設定為 0

  • hAngle := 0.5 * (60h) + m

  • mAngle := 6m

  • ret := |hAngle - mAngle|

返回 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

更新於: 2020年11月10日

2K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告