I valori rilevati sono valutati all'interno del ciclo stesso o in uno ancora successivo?

In genere quando sballa 'sempre' un solo valore in un ciclo (for, while, etc,) è un classico esempio del
mancato controllo agli estremi, superiore e/o inferiore, del ciclo stesso, raramente accade nel mezzo:
in questi ultimi casi bisognerebbe mettere mano allo pseudo codice o all'algoritmo ideato

Pertanto ti direi di controllare il valore del contatore iniziale che potrebbe partire non da '0' o '1' o quello
terminale: potrebbero non essere stati valutati a dovere.