ধরুন দুটি সংখ্যা দেওয়া আছে: hour এবং minutes। ঘড়ির আওয়ার এবং মিনিট কাঁটার মাঝপথে ছোট কোণ (সেক্সাজেসিমাল ইউনিটে) বের করতে হবে। ইনপুট hour = 12, min = 30 হলে রেজাল্ট ১৬৫°।
সমাধানের ধাপগুলো:
যদি h = 12 হয়, তবে h := 0 সেট করুন
যদি m = 60 হয়, তবে m := 0 সেট করুন
hAngle := 0.5 * (60*h + m)
mAngle := 6 * m
ret := |hAngle - mAngle|
min(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