Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

มุมระหว่างเข็มนาฬิกาใน C++


สมมติว่าเรามีตัวเลขสองตัว ชั่วโมงและนาที เราต้องหามุมที่เล็กกว่า (ในหน่วยความเท่าเทียม) ที่เกิดขึ้นระหว่างเข็มชั่วโมงกับเข็มนาที ดังนั้นหากอินพุตเป็น hour =12 และ min :=30 ผลลัพธ์จะเป็น 165°

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ถ้า h =12 ให้ตั้งค่า h :=0

  • ถ้า m =60 ให้ตั้งค่า m :=0

  • มุมองศา :=0.5 * (60 ชม.) + ม.

  • มุมมุม :=6m

  • ret :=|hAngle - mAngle|

  • ผลตอบแทนขั้นต่ำของ ret และ (360 – ret)

ตัวอย่าง (C++)

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#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