El algoritmo si está bien, pero ten mucho cuidado con los índices de las tablas, ahí es donde tienes un error.
pintate la tabla con los índices y los valores que tiene dentro, y haz un seguimiento cuando n vale 1, despues 0 , SALE de la recursividad, y ¿que pasa ahora?
![Big Grin](http://www.clubdelphi.com/foros/images/smilies/biggrin.gif)