ÎncepețiÎncepe gratuit

Cum să calculezi factorial de 6 în mod recursiv

În exercițiul anterior, ai calculat factorialul 5! printr-o soluție iterativă. Acum vei calcula 6! recursiv. Pentru a defini factorialul n! în mod recursiv, reducem problema în subprobleme de același tip. În acest scop, putem folosi următoarea definiție:

  • 0! = 1 pentru step = 0
  • (n+1)! = n! * (step+1) pentru step > 0

Cu această definiție simplă poți calcula factorialul oricărui număr. În acest exercițiu, n! este reprezentat prin factorial.

Vei folosi definiția de mai sus cu ajutorul unui CTE recursiv.

Acest exercițiu face parte din cursul

Interogări ierarhice și recursive în SQL Server

Vezi cursul

Instrucțiuni pentru exercițiu

  • Inițializează câmpurile factorial și step cu valoarea 1.
  • Calculează partea recursivă folosind factorial * (step + 1).
  • Oprește procesul de recursivitate când valoarea iterației curente este mai mică decât numărul factorial țintă.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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;
Editează și rulează codul