input: Write a function to clearly understand the concept of recursion by calculating the factorial of a given number using a recursive function. The function should return the factorial when given a non-negative integer. If the input number is 1, the function should return 1 directly.
  assert factorial(5) == 120
  assert factorial(1) == 1
  assert factorial(3) == 6
  assert factorial(0) == 1
  assert factorial(4) == 24
output: def factorial(n):
      if n == 0 or n == 1:
          return 1
      else:
          return n * factorial(n - 1)