Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình tìm góc giữa kim giờ và kim phút của đồng hồ trong C ++?

Giả sử chúng ta có hai giá trị giờ và phút. Chúng ta phải tìm một góc nhỏ hơn hình thành giữa kim giờ và kim phút.

Vì vậy, nếu đầu vào là giờ =12 phút =45, thì đầu ra sẽ là 112,5

Chương trình tìm góc giữa kim giờ và kim phút của đồng hồ trong C ++?

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau:

  • nếu h =12 thì đặt h:=0

  • nếu m =60 thì đặt m:=0

  • hAngle:=0,5 * (60 giờ) + m

  • mAngle:=6m

  • ret:=| hAngle - mAngle |

trả về tối thiểu ret và (360 - ret) Hãy để chúng tôi xem cách triển khai sau để hiểu rõ hơn:

Ví dụ

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

Đầu vào

12, 45

Đầu ra

112.5