Supongamos que tengo una función $f(n)$ a continuación, encuentre $f(84)$ : $$f(n)=\begin{cases} n-3 \ \ \ \ \ \ \ \qquad{\text{if $n\ge1000$}}\\ f\big(f(n+5)\big)\quad{\text{if $n<1000$}} \end{cases}$$ Mi intento: $$\begin{align} f(84)=&f\big(f(89)\big)\\ f(89)=&f\big(f(94)\big)\\ f(94)=&f\big(f(99)\big)\\ &\vdots\\ f(999)=&f\big(f(1004)\big)\\ f(1004)=&1001 \end{align} $$ Ahora: $$\begin{align} f(999)&=f(1001)=998\\ f(994)&=f\big(f(999)\big)=f(998)\Rightarrow f(998)=f\big(f(1003)\big)=f(1000)=997\\ &f(994)=f(998)=997\\ f(989)&=f\big(f(994)\big)=f(997)\Rightarrow f(997)=f\big(f(1002)\big)=f(999)=998\\ &f(989)=f(997)=998\\ f(984)&=f\big(f(989)\big)=f(998)=997\\ f(979)&=f\big(f(984)\big)=f(997)=998\\ \vdots && \end{align}$$ Obviamente, ya que el valor de $f(n)$ alterna entre $997$ & $998$ dependiendo de si $n$ es impar o incluso, así: $$\vdots\\ f(89)=998\\ \therefore\bbox[10px, border:1px solid black]{f(84)=997}\\ $$
Mi pregunta: ¿hay una forma más eficiente de resolver esto?