C :: 재귀함수

J·2024년 5월 23일

C언어

목록 보기
17/18
post-thumbnail

재귀함수

: 자기 자신(함수)을 부르는 함수

// 함수 구현 :: 전달받은 n값에 따라서, n ~ 1 까지 출력하는 함수 (n은 자연수)
int print(int n) {

	printf("%d\n", n);

	if (n == 1) {				// if가 중단점 역할

		printf("print() 함수를 종료합니다.\n");
		return 0;				// break 역할
	}

	return print(n - 1);		// 자기자신을 호출

}

int main() {
	
	int num;
	scanf("%d", &num);

	print(num);
}

ex.

// 문제 :: 입력값 num에 대한 팩토리얼 값 반환하는 함수를 구현
// 5! = 5*4*3*2*1
// n! = n*(n-1) * ... *1 ;

int factorial(int n) {

	printf("%d 탐색 중\n", n);
	if (n == 1) return 1;

	return n * factorial(n - 1);

	// 5 * fact(4) = 5*(4*fact(3)) = 5*4*(3*fact(2)) = 5*4*3*(2*fact(1))

}

int main() {
	int num;
	scanf("%d", &num);

	int result =factorial(num);

	printf("%d", result);
}
profile
나야

0개의 댓글