इस समस्या में, हमें दो पूर्णांक x और y दिए गए हैं। हमारा कार्य एक ऐसा फ़ंक्शन बनाना है जो एक पुनरावृत्त दृष्टिकोण का उपयोग करके पाउ (एक्स, वाई) के बराबर होगा जो कार्य को 0 (लॉग वाई) की समय जटिलता में पूरा करेगा।
आइए समस्या को समझने के लिए कुछ उदाहरण लें,
इनपुट
x = 7 , y = 3
आउटपुट
343
pow(x,y) के लिए पुनरावृति फ़ंक्शन पुनरावृति करेगा और y के विषम मानों के लिए परिणाम को x से गुणा करके अपडेट करेगा और प्रत्येक पुनरावृत्ति पर x से x2 को अपडेट करेगा।
समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम
उदाहरण
#include <iostream>
using namespace std;
void calcPower(int x, unsigned int y) {
int result = 1;
while (y > 0) {
if (y & 1)
result *= x;
y = y >> 1;
x = x * x;
}
cout<<result;
}
int main() {
int x = 7;
unsigned int y = 3;
cout<<x<<" raised to "<<y<<" is ";
calcPower(x,y);
return 0;
} आउटपुट
raised to 3 is 343