input: Write a python function to calculate the number of ways to reach from a starting step to an ending step where you can take either one or two steps at a time.
  assert num_ways(0, 2) == 2
  assert num_ways(0, 3) == 3
  assert num_ways(1, 4) == 3
  assert num_ways(2, 5) == 3
  assert num_ways(3, 6) == 5
output: def num_ways(start, end):
      if end - start <= 1:
          return 1
      ways = [0] * (end - start + 1)
      ways[0], ways[1] = 1, 1
      for i in range(2, end - start + 1):
          ways[i] = ways[i - 1] + ways[i - 2]
      return ways[end - start]