# C# - Recursive Method

A method which can call itself is known as recursive method. A recursive method generally ends with one or more boundary conditions which defines exit conditions from the method, otherwise it will go into an infinite loop.

### Example: Factorial of a number

The factorial of a positive integer is the multiplication of all positive integer less than or equal to that number.

factorial of number n = n! = n(n-1)(n-2)...1

In the example below, a recursive method called factorial() is used to calculate factorial of a number.

```using System;

class MyProgram {
static int factorial(int x) {
if (x == 0 || x == 1)
return 1;
else
return x*factorial(x-1);
}

static void Main(string[] args) {
Console.WriteLine("3! =  " + factorial(3));
Console.WriteLine("5! =  " + factorial(5));
Console.WriteLine("10! =  " + factorial(10));
}
}
```

The output of the above code will be:

```3! =  6
5! =  120
10! =  3628800
```

### Example: Fibonacci Sequence

Fibonacci terms are generally represented as Fn. A Fibonacci term is the sum of two previous terms and starts with 0 and 1. Mathematically, it can be represented as:

Fn = Fn-1 + Fn-2

With boundary conditions: F0 = 0 and F1 = 1

The Fibonacci Sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233...

In the example below, a recursive method called fib() is created to find out the nth term of Fibonacci sequence.

```using System;

class MyProgram {
static int fib(int n) {
if (n == 0)
{return 0;}
else if (n == 1)
{return 1;}
else
{return fib(n-1) + fib(n-2);}
}

static void Main(string[] args) {
Console.WriteLine("Fibonacci 5th term: " + fib(5));
Console.WriteLine("Fibonacci 6th term: " + fib(6));
Console.WriteLine("Fibonacci 7th term: " + fib(7));
}
}
```

The above code will give the following output:

```Fibonacci 5th term: 5
Fibonacci 6th term: 8
Fibonacci 7th term: 13
```

❮ C# - Methods

5