রিকার্শন নিয়ে এর আগে একটি লেখা লিখেছি। যেখানে রিকার্শন সম্পর্কে বিস্তারিত জানা যাবেঃ রিকার্শন/ Recursion , রিকার্সিভ অ্যালগরিদম, রিকার্সিভ ফাংশন ও সি প্রোগ্রামিং এ প্রয়োগ
যা কিছু লুপ দিয়ে করা যায়, তার সব কিছুই রিকার্শন দিয়ে করা যায়। যেমন আমরা একটা লুপ লিখি এভাবেঃ
for(int i = 0; i < 10; i++) {
printf("%d \n", i);
}
এটিকে সহজেই রিকার্শনে পরিবর্তন করে আমরা লিখতে পারি এভাবেঃ
void recursiveFor(int i, int n) {
if(i==n) return; // Terminates if we reach goal
printf("%d \n", i);
recursiveFor(i+1, n); // Go to next step, recursion
}
সম্পূর্ণ প্রোগ্রামঃ
#include<stdio.h>
void recursiveFor(int i, int n) {
if(i==n) return; // Terminates if we reach goal
printf("%d \n", i);
recursiveFor(i+1, n); // Go to next step, recursion
}
int main()
{
recursiveFor(0, 10); // 0 to 10
return 0;
}
উল্টো ভাবেও আমরা লিখতে পারিঃ
for(int i = 10; i > 0; i--) {
printf("%d \n", i);
}
রিকার্শনেঃ
void recursiveFor(int i, int n) {
if(i==n) return; // Terminates if we reach goal
printf("%d \n", i);
recursiveFor(i-1, n); // Go to next step, recursion
}
সম্পূর্ণ প্রোগ্রামঃ
#include<stdio.h>
void recursiveFor(int i, int n) {
if(i==n) return; // Terminates if we reach goal
printf("%d \n", i);
recursiveFor(i-1, n); // Go to next step, recursion
}
int main()
{
recursiveFor(10, 0); // 10 to 0
return 0;
}
রিকার্শন নিয়ে প্রথম লেখাতে একটি Fibonacci সিরিস সম্পর্কে বলেছি। বলেছিলাম রিকার্শন ব্যবহার করে n তম Fibonacci নাম্বারটা বের করার জন্য। তার জন্য আমরা একটি প্রোগ্রাম এভাবে লিখতে পারিঃ
#include<stdio.h>
int fibonacci(int n) {
if(n==0)
return 0;
else if (n==1)
return 1;
else
return(fibonacci(n-1) + fibonacci(n-2));
}
int main()
{
// printing 8th fibonacci number.
printf("%d\n", fibonacci(8));
return 0;
}
সুন্দর পোস্ট