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 sononmodi 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:firstviene impostata su 1 (rappresenta il numero di modi per raggiungere il primo gradino),secondviene impostata su 2 (rappresenta il numero di modi per raggiungere il secondo gradino), ethirdviene 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
forche 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 difirstesecond. 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 variabilifirstesecondvengono aggiornate in modo chefirstassuma il valore disecondesecondassuma il valore dithird. Questo prepara il prossimo passaggio del ciclo, in cuithirddiventa 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 glingradini.
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.