In questo articolo vedremo come risolvere il quiz dei gradini di una scala con JavaScript.
La soluzione è la seguente:
'use strict';
function climbStairs(n) {
if (n <= 2) return n;
let first = 1;
let second = 2;
let third = 3;
for (let i = 3; i <= n; i++) {
third = first + second;
first = second;
second = third;
}
return third;
}
La funzione JavaScript climbStairs
, calcola il numero di modi in cui puoi salire una scala di n
gradini. Ogni volta puoi salire uno o due gradini alla volta.
Ecco come funziona la funzione passo dopo passo:
- Se il valore di
n
è inferiore o uguale a 2, significa che ci sonon
modi distinti per salire gli scalini. Quindi la funzione restituisce direttamente il valore di `n senza eseguire ulteriori calcoli. - Se
n
è maggiore di 2, la funzione prosegue con un approccio iterativo. Inizialmente, vengono dichiarate tre variabili:first
viene impostata su 1 (rappresenta il numero di modi per raggiungere il primo gradino),second
viene impostata su 2 (rappresenta il numero di modi per raggiungere il secondo gradino), ethird
viene impostata su 3 (sarà utilizzata come variabile di appoggio per calcolare il numero di modi per raggiungere i gradini successivi). - Successivamente, viene avviato un ciclo
for
che itera da 3 fino an
. All'interno del ciclo, il numero di modi per raggiungere il gradino corrente (rappresentato dathird
) viene calcolato sommando il valore difirst
esecond
. Questo perché puoi raggiungere il gradino corrente sia salendo di uno dal gradino precedente (first
), sia salendo di due gradini dal gradino precedente (`second). - Dopo aver calcolato
third
, le variabilifirst
esecond
vengono aggiornate in modo chefirst
assuma il valore disecond
esecond
assuma il valore dithird
. Questo prepara il prossimo passaggio del ciclo, in cuithird
diventa il numero di modi per raggiungere il gradino successivo. - Una volta completato il ciclo, la funzione restituisce il valore di
third
, che rappresenta il numero totale di modi per salire glin
gradini.
In sostanza, la funzione climbStairs
utilizza un approccio iterativo per calcolare il numero di modi distinti per salire una scala di n
gradini, sfruttando la proprietà ricorsiva del problema.