Bene, spero che tu abbia dato una buona chance a questa sfida.
Prima di arrivare alla soluzione.
Ed è perché impari davvero solo quando provi a fallire e ad affrontare sfide come questa.
Quindi, se non gli hai dato abbastanza tempo, smetti di pensarci.
Aspettare.
Ritorna ad esso.
E solo se rimani davvero bloccato.
Quindi vieni qui e controlla la soluzione con me.
Ora lavorerò sul diagramma di flusso che ti ho mostrato prima della sfida.
Quindi stiamo per convertire tutta questa logica in codice per cominciare.
Iniziamo con un output uguale a un array vuoto.
Quindi scriviamolo nel nostro codice.
Quindi creiamo una sorta di output di codice variabile e possiamo impostarlo su un array vuoto
senza nulla all'interno.
Ora il prossimo passo è controllare se n è uguale a 1 e in tal caso daremo l'output
come 0.
Quindi per fare ciò useremo un'istruzione if per verificare se questo n che viene passato è uguale a 1.
E se è così, allora diremo che l'output sarà uguale a zero.
Quindi questo è il primo elemento della sequenza e quindi possiamo andare avanti e restituire l'output.
Ora il prossimo passo nel nostro diagramma di flusso è volontà se non era uguale a 1, allora è uguale a 2.
E in tal caso l'output dovrebbe essere zero virgola 1.
Quindi possiamo rappresentare questa logica usando un elusivo ricordo che altrimenti viene verificato solo se
il primo era falso.
Quindi ora possiamo dire bene se non è uguale a 1 Bene è uguale a 2.
Quindi, se lo è, imposteremo l'output su uguale a zero virgola uno memorizzato all'interno di un array e
verrà nuovamente restituito alla fine.
Ora finalmente se non è uno e non va troppo bene, allora dobbiamo sommare gli ultimi
due valori nell'output in modo da poter catturare quella condizione finale usando un'istruzione L e all'interno qui imposteremo
l'output su uguale a zero virgola 1 per iniziare perché questo è l'inizio della
nostra sequenza e quindi sommeremo gli ultimi due valori e possiamo farlo raggiungendo gli output e ottenendo il primo valore.
Quindi output nella posizione 0 che è questo e quindi lo aggiungiamo all'output nella posizione 1.
Quindi ora stiamo sostanzialmente aggiungendo questo primo elemento al secondo elemento e questo dovrebbe essere uguale a 1 e dovrebbe essere in
qualche modo aggiunto alla fine di questo array esistente.
E se ricordi dalle precedenti lezioni sugli array, possiamo farlo dicendo push
punto di output e possiamo avvolgere questo calcolo tra parentesi e finiremo per aggiungere questa soluzione all'array
esistente.
E a questo punto l'output dovrebbe ora apparire come zero virgola una virgola 1 e verrà restituito.
Ora dobbiamo verificare se N è uguale al numero di elementi nell'output.
Quindi potremmo farlo usando un'altra istruzione if e potremmo dire che F e triple è uguale alla lunghezza dell'output.
Quindi possiamo andare avanti e restituire l'output ma altrimenti dobbiamo continuare ad aggiungere insieme gli ultimi due elementi.
Quindi, come possiamo cambiare qui il nostro codice in modo che invece di dire manualmente sia l'articolo
dall'array di output nella posizione 0 questo più l'elemento nella posizione 1 Questo.
Come possiamo dire invece che vogliamo ottenere l'ultimo elemento più il secondo dall'ultimo elemento.
Bene potremmo usare la lunghezza.
Quindi in questo caso la lunghezza dell'uscita sarà pari a 2.
Quindi se volessimo che questo fosse uno, potremmo dire la lunghezza del punto in uscita meno uno e quindi avremo il nostro
secondo dalla fine che sarà la lunghezza in uscita meno due.
Quindi funziona ancora esattamente lo stesso.
Ma ora questa riga di codice può funzionare indipendentemente dalla dimensione del nostro array perché anche se fosse così lunga
la lunghezza dell'output a questo punto sarà uguale a quattro, quindi quattro meno uno sarà tre.
Quindi questo diventa tre e se guardiamo l'oggetto in posizione tre nel nostro Rea è zero uno due tre.
Quindi è questo ultimo oggetto e meno due lo fa 2 e 0 1 2 diventa il secondo dall'ultimo elemento.
Quindi stiamo aggiungendo uno più due qui.
Quindi questa riga di codice ora la rende dinamica e ora potremmo usarla all'interno della nostra istruzione L.
Ma nota come queste due righe di codice ora si ripetono.
E anche quando arriviamo alla fine dell'istruzione L non abbiamo modo di tornare all'inizio per
verificare se n è uguale di nuovo alla lunghezza di output come è richiesto qui dato quanto assomiglia
a un cerchio.
Dovrebbe ricordarti che dobbiamo usare un loop.
Quindi, invece di scrivere tutto questo, potremmo semplicemente creare un loop e il tipo di loop che ho intenzione di
creare in questo caso è un ciclo for.
Quindi dirò creiamo una variabile all'interno del ciclo for che sia uguale a così il numero esistente
di elementi nel nostro output e quindi useremo un punto e virgola e diciamo che mentre io sono inferiore al numero totale di gli articoli
di cui abbiamo bisogno nel nostro output continuano ad aumentare.
Compro una volta ogni volta quello che vuoi fare è farlo per ottenere l'ultimo oggetto dagli output per ottenere
il secondo dall'ultimo articolo dagli output.
Aggiungili insieme, quindi inseriscili nel nostro array e infine restituisci l'output.
Quindi ora prendiamo il generatore nazista e incolliamolo nel nostro parco giochi avvolgente.
E ora andiamo avanti e proviamo a eseguire il nostro codice chiamando il generatore di Fibonacci e iniziamo con qualcosa
di abbastanza semplice.
Cominciamo con un uguale a 1.
Ora se premo run nell'output ottengo zero.
Se cambio questo a 2 nell'output ottengo 0 1 e se lo cambio a 5 nell'output ottengo una sequenza di 5
elementi in un array.
Quindi ora che abbiamo confermato che il nostro codice funziona, andiamo avanti e facciamo clic su Controlla la soluzione per vedere se
abbiamo capito bene.
Brillante.
Quindi ora abbiamo superato questa sfida.
Come sei andato avanti con questa sfida.
Hai avuto difficoltà a utilizzare forse alcuni dei metodi dell'array o ti sei ricordato di usare
un loop in modo che giri e rigiri ripetutamente.
Ora ricorda che ci sono molti modi per risolvere questa sfida.
Avresti potuto usare un ciclo while che avresti potuto fare qualcosa di fantasia invece di usare molti if
e altrimenti c'è un sacco di modi.
Ma fintanto che la tua produzione soddisfa i criteri che abbiamo definito nella sfida, non importa in
che modo hai scelto.
In effetti a questo punto finché la tua soluzione ha senso per te, quella sarà la soluzione perfetta.