ধরুন আমাদের দুটি সংখ্যা আছে, ঘন্টা এবং মিনিট। ঘন্টা এবং মিনিট হাতের মধ্যে গঠিত একটি ছোট কোণ (সেক্সজেসিমাল ইউনিটে) আমাদের খুঁজে বের করতে হবে। তাই যদি ইনপুট ঘন্টা =12 এবং মিনিট :=30 এর মত হয়, তাহলে ফলাফল 165° হবে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
যদি h =12 হয়, তাহলে h :=0
সেট করুন -
যদি m =60 হয়, তাহলে m :=0
সেট করুন -
hAngle :=0.5 * (60h) + m
-
mAngle :=6m
-
ret :=|hAngle - mAngle|
-
ন্যূনতম রিটার্ন এবং (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