input: Write a python function to generate Fibonacci numbers up to a given number n.
  assert fibonacci_numbers(10) == [0, 1, 1, 2, 3, 5, 8]
  assert fibonacci_numbers(1) == [0]
  assert fibonacci_numbers(0) == []
  assert fibonacci_numbers(20) == [0, 1, 1, 2, 3, 5, 8, 13]
output: def fibonacci_numbers(n):
      if n <= 0:
          return []
      fibs = [0, 1]
      while True:
          next_fib = fibs[-1] + fibs[-2]
          if next_fib > n:
              break
          fibs.append(next_fib)
      return fibs if n > 1 else [0]