EmpezarEmpieza gratis

Cómo consultar recursivamente el factorial de 6

En el último ejercicio, consultaste el factorial 5! con una solución iterativa. Ahora vas a calcular 6! de forma recursiva. Reducimos el problema a subproblemas del mismo tipo para definir el factorial n! de manera recursiva. Para ello se puede usar la siguiente definición:

  • 0! = 1 para step = 0
  • (n+1)! = n! * (step+1) para step > 0

Con esta sencilla definición puedes calcular el factorial de cualquier número. En este ejercicio, n! está representado por factorial.

Vas a aprovechar la definición anterior con la ayuda de una CTE recursiva.

Este ejercicio forma parte del curso

Consultas jerárquicas y recursivas en SQL Server

Ver curso

Instrucciones del ejercicio

  • Inicializa los campos factorial y step en 1.
  • Calcula la parte recursiva con factorial * (step + 1).
  • Detén el proceso de recursión cuando el valor de la iteración actual sea menor que el número objetivo de factorial.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

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;
Editar y ejecutar código