이 글에서는 PL/SQL을 사용하여 숫자의 계승(팩토리얼, Factorial)을 구하는 방법을 알아봅니다. PL/SQL 코드에서는 서로 관련된 선언문들을 하나의 블록으로 묶고, 그 안에 여러 명령어들이 그룹 형태로 배치되어 실행됩니다.
계승(Factorial)이란?
어떤 수의 계승이란 1부터 해당 수 n까지의 모든 정수를 차례대로 곱한 값을 의미합니다. 수식으로 표현하면 다음과 같습니다.
n! = n × (n − 1) × (n − 2) × … × 2 × 1
예를 들어 5의 계승은 5! = 5 × 4 × 3 × 2 × 1 = 120이 됩니다.
PL/SQL 예제 코드
DECLARE
fact number := 1;
n number := &1;
BEGIN
WHILE n > 0 LOOP
fact := n * fact;
n := n - 1;
END LOOP;
DBMS_OUTPUT.PUT_LINE(fact);
END;코드 설명
fact: 계산 결과를 저장하는 변수로, 곱셈 연산에 영향을 주지 않도록 1로 초기화합니다.n: 사용자가 입력하는 숫자입니다.&1은 실행 시점에 사용자 입력을 받아 대체되는 치환 변수입니다.WHILE루프 : n이 0보다 큰 동안 fact에 n을 곱하고, n을 1씩 감소시키며 반복합니다.DBMS_OUTPUT.PUT_LINE: 최종적으로 계산된 계승 값을 화면에 출력합니다.
실행 결과
입력값으로 5를 지정했을 때의 실행 결과는 다음과 같습니다.
120