Example 5 Let $f: \mathbf{N}^{+} \rightarrow \mathbf{N}^{+}$, for any $m, n \in \mathbf{N}^{+}$, we have $f(m+n) \geqslant f(m)+f(n)$, and $f(2)=0$, $f(3)>0, f(9999)=3333$, find $f(1997)$.
Given the known conditions
$$
f(m+n) \geqslant f(m)+f(n),
$$

let $m=n=1$, from (1) we get $f(2) \geqslant 2 f(1)$, and by $f(2)=0$ and $f(1) \geqslant 0$ we can get $f(1)=0$. Let $m+n=3$, $m=2$, it is easy to find that $f(3)=1$. For $\forall k \in \mathbf{N}^{+}$, then $f(3 k)=f[3(k-1)+3] \geqslant f[3(k-1)]+f(3)=$ $f[3(k-1)]+1, f[3(k-1)]=f[3(k-2)+3] \geqslant f[3(k-2)]+f(3)=f[3(k-2)]+1$, hence
$$
f(3 k) \geqslant f[3(k-1)+1] \geqslant f[3(k-2)]+2 \geqslant \cdots \geqslant k .
$$

Given $f(3 \times 3333)=3333$, there is reason to conjecture that if $kk_{0}$, and if $f\left(3 k_{n}\right) \geqslant k_{0}+1$, then $f(9999) \geqslant f\left[\left(9999-3 k_{0}\right)+3 k_{0}\right] \geqslant\left(3333-k_{0}\right)+\left(k_{0}+1\right)>3333$, this result contradicts the given conditions, so it must be that $f(3 k)=k$, from which we can deduce $f(3 \times 1997)=1997$, and $f(3 \times 1997) \geqslant f(2 \times 1997)+f(1997)>$ $3 f(1997)$, hence $f(1997) \leqslant \frac{1997}{3}<666$, and $f(1997)=f(1995+2) \geqslant f(1995)+f(2)=f(3 \times$ $665)+0=665$, comparing with the above, we find $f(1997)=665$.