मान लीजिए हमारे पास दो इनपुट x और n हैं। x -100.0 से 100.0 की रेंज में एक संख्या है, और n एक 32-बिट साइन्ड इंटीजर है। हमें लाइब्रेरी फ़ंक्शन का उपयोग किए बिना x की घात n ढूंढनी है।
इसलिए यदि दिए गए इनपुट x = 12.1, n = -2 हैं, तो आउटपुट 0.00683 होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- power := |n| और res := 1.0
- जब तक power 0 नहीं है
- यदि power का अंतिम बिट 1 है, तो res := res * x
- x := x * x
- यदि n < 0
- 1 / res लौटाएं
- 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