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+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告