16. In Rt $\triangle A B C$, $\angle B=90^{\circ}, A B=20$, $B C=21$. Then the number of line segments with integer lengths from vertex $B$ to points on the hypotenuse (including sides $A B$ and $B C$) is ( ).
(A) 5
(B) 8
(C) 12
(D) 13
(E) 15
16. D.

From the problem, we know that the distance from point $B$ to $AC$ is
$$
d=\frac{AB \cdot BC}{AC}=\frac{20 \times 21}{\sqrt{20^{2}+21^{2}}}=\frac{20 \times 21}{29}=14 \frac{14}{29} \text {. }
$$

By the property that the perpendicular segment from a point to a line segment is the shortest, we know that among the line segments connecting vertex $B$ to each point on the hypotenuse (including sides $AB$ and $BC$), the lengths of the line segments that are integers are: $15,16, \cdots, 21$.

By symmetry, the line segments with lengths $15,16, \cdots, 20$ each have two, and the line segment with length 21 has one, making a total of $6 \times 2+1=13$ segments.