It is clear that f(n)≥1 for all n≥1. Assume that f(n)≥m for all n≥m, for some m≥1. Let n≥m+1. Because n−1≥m, we have f(n−1)≥m and therefore f(f(n−1))≥m. We deduce that f(n)>2f(n−1)+f(f(n−1))≥m. Hence, f(n)≥m+1. In particular, f(n)≥n for all n∈N.
Assume there exists m for which f(m)≥m+2. Then f(f(m))≥f(m+2)≥m+2, and f(m+1)>2f(m)+f(f(m))≥m+2. This gives f(m+1)≥(m+1)+2. It follows by induction that f(n)≥n+2 for all n≥m. Therefore, for all n≥m, f(n+1)−f(n)>f(f(n))−f(n+1)≥f(n+2)−f(n+1), which means that the sequence f(n+1)−f(n) becomes decreasing from m and this contradicts the fact f(n)≥n for all n∈N. We deduce that
n≤f(n)≤n+1 for all n∈N
It is clear that the identity function is a solution. Assume that there exists m∈N such that f(m)=m+1. We have m+2≥f(m+1)>f(m)+f(f(m))−f(m+1)=m+1. This proves that f(m+1)=(m+1)+1 and by induction f(n)=n+1, for all n≥m. After checking, we conclude that the solutions are the identity function, f(n)=n+1 for all n∈N, and all the functions which can be written
f(n)={nn+1 if n<m if n≥m
for some m>1.