Inizia subitoInizia gratis

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! = 1 per step = 0
  • (n+1)! = n! * (step+1) per step > 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

Visualizza corso

Istruzioni dell'esercizio

  • Inizializza i campi factorial e step a 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;
Modifica ed esegui il codice