توابع بازگشتی در زبان 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 اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.