توابع بازگشتی در زبان C – آموزش زبان C

c recursion 4167 توابع بازگشتی در زبان C   آموزش زبان C

توابع بازگشتی در زبان C

توابع بازگشتی به توابعی گفته می شود که در داخل خودش، خودش را فراخوانی کند. برای درک بهتر به مثال زیر توجه کنید:

void recursion() {
   recursion(); /* function calls itself */
}
int main() {
   recursion();
}

 

توجه! زمانی که یک تابع بازگشتی می نویسید، باید یک نقظه پایان برای آن تابع مشخص کنید در غیر این صورت به یک عمل بی انتها تبدیل می شود و تا آخر این تابع خودش را فراخوانی خواهد کرد.

توابع بازگشتی برای حل بسیاری از مسائل ریاضی مانند محاسبه فاکتوریل یک عدد، تولید سری فیبوناچی، و غیره بسیار مفید هستند.

محاسبه فاکتوریل به صورت بازگشتی

مثال زیر با استفاده از تابع بازگشتی فاکتوریل یک عدد را محاسبه می کند:

#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;
}

امتحان کنید

زمانی که کد بالا توسط کامپایلر زبان C و اجرا شود، نتیجه زیر را تولید خواهد کرد:

Factorial of 12 is 479001600

محاسبه سری فیبوناچی به صورت بازگشتی

مثال زیر، با استفاده از تابع بازگشتی سری فیبوناچی یک عدد را تولید می کند:

#include <stdio.h>
int fibonacci(int i) {
   if(i == 0) {
      return 0;
   }
   if(i == 1) {
      return 1;
   }
   return fibonacci(i-1) + fibonacci(i-2);
}
int  main() {
   int i;
   for (i = 0; i < 10; i++) {
      printf("%d\t\n", fibonacci(i));
   }
   return 0;
}

امتحان کنید

زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:

0
1
1
2
3
5
8
13
21
34

نوشته توابع بازگشتی در زبان C – آموزش زبان C اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *