Eines Tages erwachst du nur, um dich gefangen in einer Reihe zu finden. Du versuchst einfach rauszugehen und nimmst jeweils einen Index, aber es scheint andere Regeln zu geben:
Das Array ist vollständig mit natürlichen Zahlen gefüllt.
- Wenn Sie sich in einem Index befinden
n, wechseln Sie zum Indexarray[n], mit Ausnahme von: - Wenn Sie sich in einem Index befinden,
nder eine Primzahl ist, treten Sie einenarray[n]Schritt zurück
Beispiel: Sie beginnen mit Index 4in diesem Array (Startindex ist 0):
array = [1,4,5,6,8,10,14,15,2,2,4,5,7];
-----------------^ you are here
Da der Wert des Feldes, in dem Sie sich befinden, ist 8, gehen Sie 8als erster Schritt zum Index . Das Feld, auf dem Sie landen, enthält den Wert 2. Anschließend gehen Sie 2als zweiten Schritt zum Index . Als 2Primzahl machst du 5 Schritte zurück, was dein dritter Schritt ist. Da es keinen Index gibt -3, haben Sie das Array in insgesamt 3 Schritten erfolgreich maskiert.
Ihre Aufgabe ist:
So schreiben Sie ein Programm oder eine Funktion, die ein Array und einen Startindex als Parameter akzeptiert und die Anzahl der Schritte ausgibt, die zum Verlassen des Arrays erforderlich sind. Wenn Sie das Array nicht verlassen können (z. B. [2,0,2]mit start-index 2=> Sie wechseln ständig von index 2zu 0), geben Sie einen falschen Wert aus. Sie können eine einbasierte oder eine nullbasierte Indizierung verwenden, geben Sie jedoch an, welche Sie verwenden.
Testfälle
Eingang: [2,5,6,8,1,2,3], 3
Ausgabe: 1
Eingang: [2, 0, 2], 2
Ausgabe: false
Input: [14,1,2,5,1,3,51,5,12,3,4,41,15,4,12,243,51,2,14,51,12,11], 5;
Ausgabe: 6
Die kürzeste Antwort gewinnt.