ПочатиПочніть безкоштовно

Як рекурсивно обчислити факторіал 6

У попередній вправі ви обчислювали факторіал 5! ітеративним способом. Тепер ви обчислите 6! рекурсивно. Ми зведемо задачу до менших підзадач того самого типу й рекурсивно визначимо факторіал n!. Для цього використаємо таке означення:

  • 0! = 1 для step = 0
  • (n+1)! = n! * (step+1) для step > 0

За цим простим означенням можна обчислити факторіал будь-якого числа. У цій вправі n! позначено як factorial.

Ви застосуєте наведене вище означення за допомогою рекурсивної CTE.

Ця вправа є частиною курсу

Ієрархічні та рекурсивні запити в SQL Server

Переглянути курс

Інструкції до вправи

  • Ініціалізуйте поля factorial і step значенням 1.
  • Обчисліть рекурсивну частину як factorial * (step + 1).
  • Зупиніть рекурсію, коли поточне значення ітерації менше за цільове число факторіала.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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;
Редагувати та запускати код