Como consultar o fatorial de 6 de forma recursiva
No exercício anterior, você consultou o fatorial 5! com uma solução iterativa. Agora, você vai calcular 6! de forma recursiva. Reduzimos o problema em problemas menores do mesmo tipo para definir o fatorial n! recursivamente. Para isso, pode-se usar a seguinte definição:
0! = 1parastep = 0(n+1)! = n! * (step+1)parastep > 0
Com essa definição simples, você consegue calcular o fatorial de qualquer número. Neste exercício, n! é representado por factorial.
Você vai aplicar a definição acima com a ajuda de uma CTE recursiva.
Este exercício faz parte do curso
Consultas Hierárquicas e Recursivas no SQL Server
Instruções do exercício
- Inicialize os campos
factorialestepcom 1. - Calcule a parte recursiva com
factorial * (step + 1). - Pare o processo de recursão quando o valor da iteração atual for menor que o número fatorial desejado.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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;