假设我们有两个数字,小时和分钟。我们必须找到时针和分针之间形成的较小角度(以六进制单位)。因此,如果输入类似于小时= 12和分钟:= 30,则结果将为165°。
为了解决这个问题,我们将遵循以下步骤-
如果h = 12,则设置h:= 0
如果m = 60,则设置m:= 0
hAngle:= 0.5 *(60h)+米
mAngle:= 6m
ret:= | hAngle-mAngle |
返回最小的ret和(360 – ret)
让我们看下面的实现以更好地理解-
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
double angleClock(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.angleClock(12, 30));
}12 30
输出结果
165.00000