परिचय
एक गैर-ऋणात्मक पूर्णांक n का फैक्टोरियल उन सभी धनात्मक पूर्णांकों का गुणनफल है जो n से कम या बराबर हैं।
उदाहरण के लिए: 5 का फैक्टोरियल 120 है।
5! = 5 * 4 * 3 * 2 * 1 5! = 120
एक पूर्णांक का फैक्टोरियल रिकर्सिव प्रोग्राम या नॉन-रिकर्सिव प्रोग्राम का उपयोग करके पाया जा सकता है। दोनों के उदाहरण नीचे दिए गए हैं।
नॉन-रिकर्सिव प्रोग्राम का उपयोग करके फैक्टोरियल
किसी संख्या का फैक्टोरियल खोजने के लिए for लूप का उपयोग किया जा सकता है। यह निम्नलिखित प्रोग्राम का उपयोग करके प्रदर्शित किया गया है -
उदाहरण
#include <iostream>
using namespace std;
int main() {
int n = 5, fact = 1, i;
for (i = 1; i <= n; i++)
fact = fact * i;
cout << "Factorial of " << n << " is " << fact;
return 0;
}
आउटपुट
Factorial of 5 is 120
उपरोक्त प्रोग्राम में, for लूप 1 से n तक चलता है। लूप के प्रत्येक पुनरावृत्ति के लिए, fact को i से गुणा किया जाता है। fact का अंतिम मान 1 से n तक की सभी संख्याओं का गुणनफल होता है।
रिकर्सिव प्रोग्राम का उपयोग करके फैक्टोरियल
निम्नलिखित प्रोग्राम किसी संख्या का फैक्टोरियल खोजने के लिए एक रिकर्सिव प्रोग्राम प्रदर्शित करता है।
उदाहरण
#include <iostream>
using namespace std;
int fact(int n) {
if ((n == 0) || (n == 1))
return 1;
else
return n * fact(n - 1);
}
int main() {
int n = 5;
cout << "Factorial of " << n << " is " << fact(n);
return 0;
}
आउटपुट
Factorial of 5 is 120
उपरोक्त प्रोग्राम में, fact() फ़ंक्शन एक रिकर्सिव फ़ंक्शन है। main() फ़ंक्शन उस संख्या के साथ fact() को कॉल करता है जिसका फैक्टोरियल आवश्यक है।
यदि संख्या 0 या 1 है, तो fact() 1 लौटाता है। यदि संख्या कोई अन्य है, तो fact() स्वयं को n-1 मान के साथ पुनरावर्ती रूप से कॉल करता है।