রিকার্শন নিয়ে এর আগে একটি লেখা লিখেছি। যেখানে রিকার্শন সম্পর্কে বিস্তারিত জানা যাবেঃ রিকার্শন/ 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; }
সুন্দর পোস্ট