ComeçarComece de graça

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! = 1 para step = 0
  • (n+1)! = n! * (step+1) para step > 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

Ver curso

Instruções do exercício

  • Inicialize os campos factorial e step com 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;
Editar e executar o código