परिचय
किसी संख्या की घात की गणना x^y के रूप में की जा सकती है जहां x संख्या है और y उसकी घात है।
उदाहरण के लिए, x = 2 और y = 10, तो x^y = 1024।
संख्या की घात की गणना रिकर्सिव और नॉन-रिकर्सिव प्रोग्राम का उपयोग करके की जा सकती है। दोनों नीचे दिए गए हैं।
नॉन-रिकर्सिव प्रोग्राम का उपयोग करके संख्या की घात
नॉन-रिकर्सिव प्रोग्राम का उपयोग करके संख्या की घात खोजने का प्रोग्राम इस प्रकार है -
उदाहरण
#include <iostream>
using namespace std;
int power(int x, int y) {
int i, power = 1;
if (y == 0)
return 1;
for (i = 1; i <= y; i++)
power = power * x;
return power;
}
int main() {
int x = 3;
int y = 4;
cout << "x = " << x << endl;
cout << "y = " << y << endl;
cout << "x^y = " << power(x, y);
return 0;
}
आउटपुट
x = 3 y = 4 x^y = 81
उपरोक्त प्रोग्राम में, power() फ़ंक्शन का उपयोग संख्या की घात की गणना के लिए किया जाता है। यह एक नॉन-रिकर्सिव फ़ंक्शन है। फ़ंक्शन में, एक for लूप का उपयोग किया जाता है जो 1 से y तक चलता है। लूप के प्रत्येक पुनरावृत्ति के लिए, x को power से गुणा किया जाता है।
इसलिए, x को स्वयं y बार गुणा किया जाता है और परिणाम power में संग्रहीत होता है। इससे x^y power में संग्रहीत होता है। फिर power को main() फ़ंक्शन में लौटाया जाता है।
रिकर्सिव प्रोग्राम का उपयोग करके संख्या की घात
रिकर्सिव प्रोग्राम का उपयोग करके संख्या की घात खोजने का प्रोग्राम इस प्रकार है।
उदाहरण
#include <iostream>
using namespace std;
int power(int x, int y) {
if (y == 0)
return 1;
else if (y % 2 == 0)
return power(x, y/2) * power(x, y/2);
else
return x * power(x, y/2) * power(x, y/2);
}
int main() {
int x = 3;
int y = 4;
cout << "x = " << x << endl;
cout << "y = " << y << endl;
cout << "x^y = " << power(x, y);
return 0;
}
आउटपुट
x = 3 y = 4 x^y = 81
उपरोक्त प्रोग्राम में, power() एक रिकर्सिव फ़ंक्शन है। यदि y का मान 0 है, तो यह 1 लौटाता है। यदि y सम है, तो यह स्वयं को x और y/2 मानों के साथ पुनरावर्ती रूप से कॉल करता है और power(x, y/2)*power(x, y/2) लौटाता है। यदि y विषम है, तो यह स्वयं को x और y/2 मानों के साथ पुनरावर्ती रूप से कॉल करता है और x*power(x, y/2)*power(x, y/2) लौटाता है।