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
** if we dont return recursion, it will store into stack memory
Nice
ReplyDeletewelcome
Delete