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