Como una forma posiblemente más eficiente de obtener la respuesta, propongo lo siguiente (sólo requiere aritmética de números enteros, y AFAICT al menos asintóticamente menos operaciones que la suma de coeficientes binomiales de Marvis). Podemos convertir la fórmula de recurrencia en una ecuación matricial. Definir el vector $\vec{g}(n)=(g(n),g(n+1),g(n+2))$ . Entonces $\vec{g}(n+1)=\vec{g}(n)A$ , donde $A$ es el $3\times3$ matriz $$ A=\left(\begin{array}{ccc}0&0&1\\1&0&0\\0&1&1\end{array}\right). $$ Una inducción obvia muestra que $\vec{g}(n)=A^n\vec{g}(0)$ . Ya has calculado que $\vec{g}(0)=(1,1,1)$ por lo que "todo" lo que tenemos que hacer es calcular $A^{100}$ (en realidad $A^{98}$ sería suficiente, pero eso no importa esta vez). En este caso, hay que utilizar el siempre útil algoritmo de cuadrar y multiplicar: La repetición del cuadrado te da $A^2$ , $A^4=(A^2)^2$ , $A^8$ , $\ldots$ , $A^{64}$ después de seis multiplicaciones de la matriz. Tres multiplicaciones matriciales más (un total de nueve) le dan entonces $$ A^{100}=A^{64+32+4}=A^{64}\cdot A^{32}\cdot A^4. $$