ㅇ 공부#언어/(C++) 자료구조 및 STL

2. 재귀함수를 이용하여 펙토리얼 구현하기

BrainKimDu 2022. 9. 15. 21:53

2.

재귀함수를 이용하여 펙토리얼 함수를 구현하세요.

숫자를 입력받고, 이에 해당하는 결과값을 출력합니다.

 


알고리즘 분석


펙토리얼이란

5! = 5 * 4 * 3 * 2 * 1 = 120

 

n! = n * (n-1) * (n-2) .... * 2 * 1 = 

을 말한다. 

 

재귀함수로 구현하기 위해 n-1의 값을 다시 함수로 돌리는 방식을 생각해보자.

 

ADT int 펙토리얼 (int n){
	if(n이 1이라면)
   		 1을 반환해주세요.;
	if(n이 1보다 크다면)
    	return n * f(n-1)
}

 

소스코드로 구현해보자

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int pack(int n) {
	if (n == 1) {
		return n;
	}
	return n * pack(n - 1);
}

int main() {
	int n;
	printf("펙토리얼을 구합니다. 숫자를 입력해주세요.");
	scanf("%d", &n);
	printf("%d", pack(n));
}

 

정상출력을 확인하였다.