# Find the Factorial of a Number Using Recursion in C

## Factorial of a Number using Recursion in C

Here, in this page we will discuss the program to find the factorial of a number using recursion in C programming Language. We will discuss various methods to solve the given problem. ## Method Discussed :

• Method 1 : Using Recursion
• Method 2 : Using Iteration.

Let’s discuss them one by one in brief,

## Method 1:

• Call function getFactorial(num)
• Set base case when num== 0 return 1
• Other cases return num * getFactorial(num-1);

## Time and Space Complexity :

• Time complexity: O(N)
• Space complexity: O(1)
• Auxiliary Space complexity (Function call stack): O(N)

### Method 1 : Code in C

Run
```#include<stdio.h>
int getFactorial(int num)
{
if(num == 0)
return 1;

return num * getFactorial(num-1);
}
int main ()
{
int num = 7;

int fact = getFactorial(num);

printf("Fact %d: %d",num, fact);
}```

### Output :

`Fact 7: 5040`

## Method 2:

• Initialize fact = 1
• If num < 0 : Print Error as we can’t calculate factorial of a negative number
• Else run a iterative loop in iteration of (i) between [1, num]
• Set fact = fact * i
• Print the value of fact.

## Time and Space Complexity :

• Time complexity: O(N)
• Space complexity: O(1)

### Method 2 : Code in C

Run
```#include<stdio.h>
int main ()
{
int num = 7, fact = 1;

// Can't calculate factorial of a negative number
if(num < 0)
printf("Error");
else
{
for(int i = 1; i <= num; i++)
fact = fact * i;
}

printf("Fact %d: %d",num, fact);
}
```

### Output :

`Fact 7: 5040`