Solución. Para cada $k\in\mathbb N$, el intervalo $[2^k,2^{k+1}-2]$ no contiene números de la forma $2^j-1$, luego el valor de la función $f$ en cada número de ese intervalo es una unidad mayor que en el número siguiente. Como $f(2^{k+1}-1)=0$, se sigue que los valores de $f$ decrecen de unidad en unidad desde $f(2^k)=2^k-1$ hasta $f(2^{k+1}-1)=0$. En otras palabras, tenemos que $f(2^k+m)=2^k-m-1$ para todo entero $0\leq m\leq 2^k-1$, lo que determina unívocamente a la función $f$ ya que todo entero positivo se expresa de forma única como $2^k+m$ con $k,m\in\mathbb{N}_0$ y $0\leq m\leq 2^k-1$.
Esto responde a la primera pregunta ya que, si $n=2^k+m$ con $0\leq m\leq 2^k-1$, entonces \[f(n)+n=2^k-m-1+2^k+m=2^{k+1}-1.\] Además $f(0)+0=f(2^0-1)=0=2^0-1$, luego la propiedad también se cumple para $n=0$. Para responder a la segunda pregunta, expresamos $2^{1990}=2^k+m$ con $k=1990$ y $m=0$, luego \[f(2^{1990})=2^{1990}-0-1=2^{1990}-1.\]