एक गैर-ऋणात्मक पूर्णांक 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<<"Factorial of 5 is "<<fact(5)<<endl; cout<<"Factorial of 3 is "<<fact(3)<<endl; cout<<"Factorial of 7 is "<<fact(7)<<endl; return 0; }
आउटपुट
Factorial of 5 is 120 Factorial of 3 is 6 Factorial of 7 is 5040
उपरोक्त कार्यक्रम में, फ़ंक्शन फ़ैक्ट () एक पुनरावर्ती फ़ंक्शन है। मुख्य () फ़ंक्शन उस संख्या का उपयोग करके तथ्य () को कॉल करता है जिसके फैक्टोरियल की आवश्यकता होती है। यह निम्नलिखित कोड स्निपेट द्वारा प्रदर्शित किया जाता है।
cout<<"Factorial of 5 is "<<fact(5)<<endl; cout<<"Factorial of 3 is "<<fact(3)<<endl; cout<<"Factorial of 7 is "<<fact(7)<<endl;
यदि संख्या 0 या 1 है, तो fact() 1 लौटाता है। यदि संख्या कोई अन्य है, तो fact() खुद को n-1 मान के साथ पुनरावर्ती रूप से कॉल करता है। स्वयं को पुनरावर्ती रूप से कॉल करने के साथ-साथ, तथ्य () पुनरावर्ती कॉल तथ्य (n-1) के साथ n को गुणा करता है। यह उपज देता है।
n*(n-1)*(n-2)....3*2*1 or the factorial of n
यह निम्नलिखित कोड स्निपेट का उपयोग करके प्रदर्शित किया जाता है।
int fact(int n) { if ((n==0)||(n==1)) return 1; else return n*fact(n-1); }