Header Ads

Header ADS

Recursion কি? c and python programming language


Recursion কি?
Recursion এর মাধ্যমে আমরা কোনকিছু কে রিপিট করতে পারি অনেকটা ফর লুপ এর মতো। কোন ফাংশন যখন নিজেই নিজেকে কল করে তখন তাকে Recursion বলে। Recursion ব্যাবহার করার সময় আমদের অবশ্যয় exit condition ব্যাবহার করতে হবে, তা না হলে এটি infinite loop এ পরিণত হবে।

C programming language :
void recursion() {
   recursion(); /* function calls itself */
}

int main() {
   recursion();
}

Python programming language:
def recursion():
       recursion()
a=recursion()

উপরের কোড লক্ষ্য কর। আমরা একটি ডিফাইন ফাংশন তৈরি করেছি যার নাম recursion() রাখা হয়েছে। আমরা recursion() ফাংশন কে এর মধ্যে কল করেছি। এখানে recursion()No argument no return type function. এটি একটি এম্পটি ফাংশন, তাই এতে কোন  exit condition ব্যাবহার করা হয় নি।

Number Factorial

C programming language :
#include <stdio.h>

unsigned long long int factorial(unsigned int i) {

   if(i <= 1) {
      return 1;
   }
   return i * factorial(i - 1);
}

int  main() {
   int i = 12;
   printf("Factorial of %d is %d\n", i, factorial(i));
   return 0;
}
Python programming language:

def factorial(i):

   if(i <= 1):
      return 1
  
   return i * factorial(i - 1)

i = 12

print("Factorial of", i ,"is\n",factorial(i))

উপরের কোড দুটি তে আমরা Recursion ব্যাবহার করে ১২ এর Factorial  বের করেছি। এখানে if(i <= 1) শর্ত আরোপ করা হয়েছে যা exit condition হিশেবে কাজ করবে। factorial(i-1) এর মান যথাক্রমে ১১,১০,৯,৮,৭,৬,৫,৪,৩,২,১। আর i=1 হলে ফাংশন টি if(i<=1) শর্ত অনুযায়ী ১ রিট্রান করবে আর  factorial() function exit করবে বা কোড টি function এর বাহিরে চলে আসবে। করন আমরা জানি যে ফাংশনে এক এর অধিক return  ব্যাবহার করা হলে ১ম  return execute হয়। যার কারনে  i=1 হলে return i*factorial(i-1) execute হবে না।

** if we dont return recursion, it will store into stack memory


 

2 comments:

Powered by Blogger.