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! = 1parastep = 0(n+1)! = n! * (step+1)parastep > 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
Instrucciones del ejercicio
- Inicializa los campos
factorialystepen 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;