시작하기무료로 시작하기

재귀적으로 6의 팩토리얼을 쿼리하는 방법

이전 연습 문제에서는 반복적 방법으로 팩토리얼 5!를 구했어요. 이제는 6!재귀적으로 계산해 보겠습니다. 같은 유형의 더 작은 문제로 나누어 팩토리얼 n!을 재귀적으로 정의할 수 있어요. 다음과 같이 정의합니다:

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

이 간단한 정의로 모든 수의 팩토리얼을 계산할 수 있습니다. 이 연습에서는 n!factorial로 나타냅니다.

위 정의를 재귀 CTE를 사용해 구현해 보겠습니다.

이 연습은 강의의 일부입니다

SQL Server에서의 계층형 및 재귀 쿼리

강의 보기

연습 안내

  • factorialstep 필드를 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;
코드 편집 및 실행