ComenzarEmpieza 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 y completa el código de muestra.

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