НачатьНачать бесплатно

Как вычислить факториал числа 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;
Редактировать и запускать код