Wypisywanie sprawdzonych indeksów

0

Cześć, mam pewną zagwozdkę. Mam do zrobienia takie zadanie:
Użytkownik podaje na wejściu tablicę jednowymiarową, np. {1, 2, 3, 4}, indeksy są następujące 0, 1, 2, 3.

No i muszę podstawić te wartości do wzoru X = i + tab[i], gdzie X wskazuje następny docelowy indeks i wartość z tablicy, przykładowo:
Dla indeksu 0 wartość X będzie równa 1.
Dla indeksu 1 wartość X będzie równa 3.
Teraz powinien zostać pominięty indeks 2, ponieważ X wskazuje kolejny początkowy indeks.
Dla indeksu 3 wartość X będzie równa 7 i teraz koniec programu.

Indeks sprawdzony to taki, który został odwiedzony przez mój program jak wyżej, czyli chce wyświetlić tylko 0, 1, 3

Wyszedłem od czegoś takiego:

for (int i = 1; i < tab.length; i++) {
	X = i + tab[i];
	System.out.printf("Numer indeksu: %d, Wartosc X: %d\n", i, X);
}

Ktoś pomoże?

1

Jesteś bardzo blisko, tylko że zamiast inkrementować i powinieneś przypisywać mu wartość zmiennej X:

for (int i = 0; i < tab.length; i = X) // Po każdej iteracji do zmiennej i będzie przypisana wartość zmiennej X
{
    X = i + tab[i];
    System.out.printf("Numer indeksu: %d, Wartosc X: %d\n", i, X);
}

Wyjście:

Numer indeksu: 0, Wartosc X: 1
Numer indeksu: 1, Wartosc X: 3
Numer indeksu: 3, Wartosc X: 7

1 użytkowników online, w tym zalogowanych: 0, gości: 1