Come interrogare ricorsivamente il fattoriale di 6
Nell’ultimo esercizio hai calcolato il fattoriale 5! con una soluzione iterativa. Ora calcolerai 6! in modo ricorsivo. Riduciamo il problema in sottoproblemi dello stesso tipo per definire ricorsivamente il fattoriale n!. Puoi usare la seguente definizione:
0! = 1perstep = 0(n+1)! = n! * (step+1)perstep > 0
Con questa semplice definizione puoi calcolare il fattoriale di qualsiasi numero. In questo esercizio, n! è rappresentato da factorial.
Userai la definizione sopra con l’aiuto di una CTE ricorsiva.
Questo esercizio fa parte del corso
Query gerarchiche e ricorsive in SQL Server
Istruzioni dell'esercizio
- Inizializza i campi
factorialestepa 1. - Calcola la parte ricorsiva con
factorial * (step + 1). - Interrompi il processo ricorsivo quando il valore dell’iterazione corrente è minore del numero fattoriale di destinazione.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
WITH calculate_factorial AS (
SELECT
-- Initialize step and the factorial number
___ AS step,
___ AS factorial
UNION ALL
SELECT
step + 1,
-- Calculate the recursive part by n!*(n+1)
___ * (step + 1)
FROM calculate_factorial
-- Stop the recursion reaching the wanted factorial number
WHERE step < ___)
SELECT factorial
FROM calculate_factorial;