recursion function in c language with example in hindi(रिकर्सन कैसे काम करता है?)

हेल्लो दोस्तों इस पोस्ट में बताने जा रहा हूँ की c language में रिकर्सिव फ़ंक्शन क्या होते है और इसका उपयोग करना क्यों जरुरी है| रिकर्सन कैसे काम करता है? कहा उपयोग होता है| कहा नहीं! चलिए जान लेते है| पोस्ट को लास्ट तक पढ़े और अपने दोस्तों को भी शेयर करे|

Recursive Functions :

रिकर्सिव फ़ंक्शन या रिकर्सन एक प्रक्रिया है जब कोई फ़ंक्शन छोटी समस्याओं पर काम करने के लिए स्वयं की एक प्रति कॉल करता है।

रिकर्सन वह प्रक्रिया है जिसमें कोई फ़ंक्शन स्वयं को प्रत्यक्ष या परोक्ष रूप से कॉल करता है। और corresponding function या function जो स्वयं को कॉल करता है उसे पुनरावर्ती फ़ंक्शन (recursive function) कहा जाता है।

•कोई भी फंक्शन जो खुद को कॉल करता है, रिकर्सिव फंक्शन कहलाता है।

•यह जटिल समस्या (dividing complex problem) को सरल या आसान समस्याओं में विभाजित करके प्रोग्रामर के जीवन को आसान बनाता है।

•ऐसे कार्यों पर हमेशा के लिए या असीम रूप से स्वयं की प्रतियां निष्पादित (execute) करने से रोकने के लिए एक समाप्ति की शर्त लगाई जाती है।

•कोई भी समस्या जिसे पुनरावर्ती (recursive) रूप से हल किया जा सकता है, उसे भी पुनरावृत्त( recursive) रूप से हल किया जा सकता है।

हनोई के टॉवर, फाइबोनैचि सीरीज, फैक्टोरियल फाइंडिंग आदि को हल करने के लिए रिकर्सन का उपयोग किया जाता है।

Base condition in recursion :

•जिस स्थिति में फ़ंक्शन की पुनरावृत्ति (recursion) नहीं होती है, उसे बेस केस कहा जाता है।

Recursive Case :

•ऐसे उदाहरण जहां फ़ंक्शन खुद को एक (subtasks) करने के लिए बुलाता रहता है यानी समस्या को छोटे भागों में विभाजित करके हल करना, Recursive Case कहलाता है।

अब मैं संपूर्ण पुनरावृत्तियों (iterations) को संक्षेप में प्रस्तुत करता हूँ। तो रिकर्सन एक ऐसी प्रक्रिया है जिसमें कोई भी फंक्शन खुद को तब तक कॉल करता रहता है जब तक कि कोई टर्मिनेशन कंडीशन संतुष्ट नहीं हो जाती है और आसान शब्दों में आप रिकर्सन को इटरेशन की तरह ही सोच सकते हैं क्योंकि दोनों में रिपीटेशन तब तक होता है जब तक कोई कंडीशन संतुष्ट या गलत नहीं हो जाता है।

और रिकर्सन का उपयोग करने के दौरान सबसे महत्वपूर्ण बात यह है कि यह समाप्ति की स्थिति है क्योंकि अधिकांश समय रिकर्सिव फ़ंक्शन में दी गई स्थिति गलत होती है और इसके कारण फ़ंक्शन को अनंत या हमेशा के लिए निष्पादित (Execute) किया जाता है।

रिकर्सन कैसे काम करता है?

void recurse()

{
    ... .. ...
        recurse();
            ... .. ...

            }

int main()

{
    ... .. ...
        recurse();
            ... .. ...

            }

Sirf Padhai

Example:-

Program to accept a number and add the digits of that number using recursion.(किसी संख्या को स्वीकार करने और पुनरावर्तन का उपयोग करके उस संख्या के अंकों को जोड़ने का कार्यक्रम।)

   #include<stdio.h>
   #include<conio.h>

    int add_digits(int);

      void main()
{
      int n, result;

         printf("Enter a number : ");

          scanf("%d", &n);

         result = add_digits(n);

        printf("Sum : %d", result);

         getch();

      }

      int add_digits(int n)

     {

        static int sum = 0;

       if (n == 0)

        {

           return 0;

        }

       sum = n % 10 + add_digits(n / 10);

        return sum;

      }

Output:-

Enter a number : 786986
Sum : 44

Example2:-

/*find prime factors of a number recursively */
#include<stdio.h>
void factorize (int,int);
int main()
{ 
int num;
printf("entera number:");
scanf("%d", &num);
printf("prime factors are:");
factorize(num,2);
return 0;
}

void factorize(int n, int i)
{
	if (i<=n)
	{
		if(n%i==0)
		{
			 printf("%d",i);
			 n=n/i;
		}
		else
		i++;
		factorize(n,i);
	}
}

Output:-

enter number:75
prime factors are:355
--------------------------------
Process exited after 5.327 seconds with return value 0
Press any key to continue . . .

तो, यह सब सी में रिकर्सन के बारे में है। ऊपर दिए गये प्रोग्राम में आपने देखा केसे रिकर्सिव फ़ंक्शन काम करता है |

रिकर्सन के फायदे और नुकसान :-

रिकर्सन प्रोग्राम को सुरुचिपूर्ण बनाता है। हालांकि, यदि प्रदर्शन महत्वपूर्ण है, तो इसके बजाय लूप का उपयोग करें क्योंकि रिकर्सन आमतौर पर बहुत धीमा होता है।

कहा जा रहा है, रिकर्सन एक महत्वपूर्ण अवधारणा है। यह अक्सर डेटा संरचना और एल्गोरिदम में उपयोग किया जाता है। उदाहरण के लिए, ट्री ट्रैवर्सल जैसी समस्याओं में रिकर्सन का उपयोग करना आम है।

इस पोस्ट में बस इतना ही हम अगले टॉपिक पर नेक्स्ट पोस्ट में बात करेंगे | c language में, मेने recursion तक इस पोस्ट में कवर कर लिया है| जल्द ही हम c language का tutorial पूरा करेंगे और c language पर प्रोग्राम केसे बनाते है| ये भी सिखायेंगे आप साथ ही साथ पुरानी पोस्ट भी पढ़ कर अपना अब्यास जारी रख सकते है| जिससे आपको c language के आने वाले टॉपिक अच्छे से समझ आयेंगे और आपको c language और भी ज्यादा आसान लगेगी | इसी तरह पढ़ते रहे और इस वेबसाइट को follow जरुर कर ले जिससे हमारी आने वाली पोस्ट आप तक सबसे पहले पहुचे |

धन्यवाद |

Previous articleWhat is pointer in C in hindi (सी में पॉइंटर क्या है?)
Next articledata type revisited in c programming in hindi (डाटा टाइप कितने प्रकार के होते हैं)

3 COMMENTS

LEAVE A REPLY

Please enter your comment!
Please enter your name here