Recursion in C
Recursion in C Programming
In this page, we have explained all about recursion in C program which includes the different types of recursion in C.
What is Recursion in C?
Recursion is a method of solving a problem where the solution depends on solutions to smaller instances of the same problem. A recursive function is a function that calls itself with a smaller input until it reaches a base case, at which point it returns a result.
Example of a recursive function in C that calculates the factorial of a given number:
#include <stdio.h> int factorial(int n) { if (n == 0) { return 1; } return n * factorial(n - 1); } int main() { int num = 5; printf("The factorial of %d is %d\n", num, factorial(num)); return 0; }
Output
Factorial of 5 is 120.
Types of Recursion
There are two main types of recursion in C:
- Tail recursion
- Non-tail recursion
Tail Recursion
- This is a type of recursion where the recursive call is the last thing the function does before returning a value.
- Tail-recursive functions are generally preferred over non-tail-recursive functions because they can be optimized by the compiler.
int factorial(int n) { if (n == 0) { return 1; } return n * factorial(n - 1); }
Non Tail Recursion
- This is a type of recursion where the recursive call is not the last thing the function does before returning a value.
- Non-tail-recursive functions are generally less efficient than tail-recursive functions because they cannot be optimized by the compiler.
int factorial(int n) { if (n == 0) { return 1; } int result = factorial(n - 1); return n * result; }
Program to calculate the nth number in the Fibonacci sequence using Recursion:
#include<stdio.h> int fibonacci(int n) { if (n == 0 || n == 1) { return n; } else { return fibonacci(n-1) + fibonacci(n-2); } } int main() { printf("%d\n", fibonacci(6)); // Output: 8 return 0; }
Output
8
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
Get over 200+ course One Subscription
Courses like AI/ML, Cloud Computing, Ethical Hacking, C, C++, Java, Python, DSA (All Languages), Competitive Coding (All Languages), TCS, Infosys, Wipro, Amazon, DBMS, SQL and others
Login/Signup to comment