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 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;