본문 바로가기
C C++/C C++ 알고리즘 문제 기타

[C/C++] 백준 10872번 팩토리얼

by Go! Jake 2022. 9. 17.

문제 풀이

재귀함수를 사용하면 된다. 함수 안에 함수를 넣어 동일한 계산이 반복되도록 하고, 최종 값이 리턴되면 된다.

입력 값이 0이 들어갈 수도 있는 데, 이 경우를 처리하도록 신경써야 한다. 따라서 초기 if (a==1) 식에서 if (a<=1)로 변경하였다.

소스코드

#include <iostream>
#define MAX 101
using namespace std;

int n;
int res;

int factorial(int a)
{
	if (a<=1) return 1;
	return a*factorial(a-1);
}

int main()
{
	cin>>n;
	res=factorial(n);
	cout<<res;

    return 0;
}

댓글