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! = 1pentrustep = 0(n+1)! = n! * (step+1)pentrustep > 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
Instrucțiuni pentru exercițiu
- Inițializează câmpurile
factorialșistepcu 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;