Dart Recursion Function

A recursion function is a function that calls itself in its body.

Finding factorial is a classic example to demonstrate Recursion function. We use the following formula to find factorial of N using recursion function.

n! = n * (n-1)!

which is basically

factorial(n) = n * factorial(n-1)

So, in order to find the result, the function has to delegate itself with a modified value of input.

Example

Now, let us write a factorial() function, that takes n as argument, and returns 1 if the n is 1, else it computes the product of n and factorial(n.- 1).

main.dart

</>
Copy
import 'dart:io';

int factorial(int n) {
  return n == 1 ? 1 : n * factorial(n - 1);
}

void main() {
  print('Enter N');
  int N = int.parse(stdin.readLineSync()!);

  int result = factorial(N);

  print('Factorial of $N');
  print(result);
}

Output

Enter N
4
Factorial of 4
24

Explanation

factorial(4) = 4 * factorial(3)
                        |
                   factorial(3) = 3 * factorial(2)
                                            |
                                      factorial(2) = 2 * factorial(1)
                                                            |
                                                         factorial(1) = 1 * factorial(0)
                                                                            |
                                                                           (1)

Summary

In this Dart Tutorial, we have learnt what a Recursion function is, and how to use it in Dart, with examples.