Wypisywanie sprawdzonych indeksów

Wypisywanie sprawdzonych indeksów
A1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
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:

Kopiuj
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?

atmal
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 913
1

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

Kopiuj
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:

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.