ধরুন আমাদের দুটি ইনপুট x এবং n আছে। x হল -100.0 থেকে 100.0 পরিসরের একটি সংখ্যা, এবং n হল একটি 32-বিট স্বাক্ষরিত পূর্ণসংখ্যা। আমাদের লাইব্রেরি ফাংশন ব্যবহার না করেই পাওয়ার n থেকে x বের করতে হবে।
তাই যদি প্রদত্ত ইনপুট হয় x =12.1, n =-2, তাহলে আউটপুট হবে 0.00683
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- শক্তি :=|n| এবং রেস:=1.0
- যখন শক্তি 0
- নয়
- যদি পাওয়ারের শেষ বিট 1 হয়, তাহলে res :=res * x
- x :=x * x
- যদি n <0
- রিটার্ন 1 / res
- রিটার্ন রিটার্ন
উদাহরণ(পাইথন)
আসুন আরও ভালোভাবে বোঝার জন্য নিচের বাস্তবায়ন দেখি −
class Solution(object): def myPow(self, x, n): power = abs(n) res = 1.0 while power: if power & 1: res*=x x*=x power>>=1 if n<0: return 1/res return res ob1 = Solution() print(ob1.myPow(45, -2)) print(ob1.myPow(21, 3))
ইনপুট
45 -2 21 3
আউটপুট
0.0004938271604938272 9261.0