input: def sierpinski_triangle(n: int) -> None:
      """Generate the first n elements of the Sierpinski triangle.
      >>> sierpinski_triangle(3)
          1 
        1 0 1 
      1 0 0 0 1 
      >>> sierpinski_triangle(4)
           1 
         1 0 1 
       1 0 0 0 1 
     1 0 0 0 0 0 1 
      """
output:     triangle = [[1]]
      for i in range(1, n):
          row = [1]
          for j in range(1, i):
              row.append(triangle[i-1][j-1] ^ triangle[i-1][j])
          row.append(1)
          triangle.append(row)
      
      max_width = len(' '.join(map(str, triangle[-1])))
      
      for row in triangle:
          print(' ' * (max_width - len(' '.join(map(str, row)))) + ' '.join(map(str, row)))