Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Góc Giữa Hai Kim Đồng Hồ Trong C++


Giả sử có hai số hour và minutes. Tìm góc nhỏ hơn (đơn vị độ) giữa kim giờ và kim phút. Ví dụ: hour = 12, min = 30 → 165°.

Để giải quyết, chúng ta làm theo các bước:

  • Nếu h = 12 thì h = 0.

  • Nếu m = 60 thì m = 0.

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

  • mAngle = 6 * m.

  • ret = |hAngle - mAngle|.

  • Trả về min(ret, 360 - ret).

Ví dụ (C++)

Hãy xem triển khai sau để hiểu rõ hơn:

#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);
    }
};

int main(){
    Solution ob;
    cout << (ob.angleClock(12, 30));
}

Đầu vào

12 30

Đầu ra

165.00000