Jak rekurzivně vypočítat faktoriál čísla 6
V předchozím cvičení jsi vypočítal/a faktoriál 5! pomocí iterativního řešení. Teď vypočítáš 6! rekurzivně. Aby bylo možné definovat faktoriál n! rekurzivně, rozdělíme problém na menší problémy stejného typu. K tomu slouží tato definice:
0! = 1prostep = 0(n+1)! = n! * (step+1)prostep > 0
S touto jednoduchou definicí dokážeš vypočítat faktoriál libovolného čísla. V tomto cvičení je n! reprezentováno hodnotou factorial.
Využiješ výše uvedenou definici s pomocí rekurzivního CTE.
Toto cvičení je součástí kurzu
Hierarchical and Recursive Queries in SQL Server
Pokyny k cvičení
- Inicializuj pole
factorialastepna hodnotu 1. - Vypočítej rekurzivní část pomocí
factorial * (step + 1). - Ukonči rekurzi ve chvíli, kdy je aktuální hodnota iterace menší než cílové číslo faktoriálu.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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;