समस्या
C प्रोग्रामिंग भाषा में पुनरावर्ती फ़ंक्शन का उपयोग करके दिए गए दो नंबरों के लिए सबसे बड़ा सामान्य भाजक (GCD) खोजें।
समाधान
रिकर्सिव फ़ंक्शन का उपयोग करके दिए गए दो नंबरों के लिए सबसे बड़ा सामान्य भाजक (जीसीडी) खोजने का समाधान इस प्रकार है -
एल्गोरिदम
रिकर्सिव फ़ंक्शन का उपयोग करके दिए गए दो नंबरों के लिए सबसे बड़ा सामान्य भाजक (जीसीडी) खोजने के लिए नीचे दिए गए एल्गोरिदम का संदर्भ लें।
चरण 1 - रिकर्सिव फ़ंक्शन को परिभाषित करें।
चरण 2 - दो पूर्णांक a और b पढ़िए।
चरण 3 - रिकर्सिव फ़ंक्शन को कॉल करें।
a. if i>j b. then return the function with parameters i,j c. if i==0 d. then return j e. else return the function with parameters i,j%i.
फ्लो चार्ट
रिकर्सिव फ़ंक्शन का उपयोग करके दिए गए दो नंबरों के लिए सबसे बड़ा सामान्य भाजक (जीसीडी) खोजने के लिए एल्गोरिदम के लिए एक फ़्लोचार्ट नीचे दिया गया है।
उदाहरण
पुनरावर्ती फ़ंक्शन का उपयोग करके दिए गए दो नंबरों के लिए सबसे बड़ा सामान्य भाजक (GCD) खोजने के लिए C प्रोग्राम निम्नलिखित है -
#include<stdio.h> #include<math.h> unsigned int GCD(unsigned i, unsigned j); int main(){ int a,b; printf("Enter the two integers: \n"); scanf("%d%d",&a,&b); printf("GCD of %d and %d is %d\n",a,b,GCD(a,b)); return 0; } /* Recursive Function*/ unsigned int GCD(unsigned i, unsigned j){ if(j>i) return GCD(j,i); if(j==0) return i; else return GCD(j,i%j); }. लौटाएं
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Enter the two integers: 4 8 GCD of 4 and 8 is 4