어떤 사건이 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의될 때 재귀적이라고 합니다.
* 재귀 알고리즘은 병합 정렬과 퀵 정렬, 이진검색트리 등에응용합니다.
순차곱셈 구하기
음이 아닌 정수 n의 순차곱셈 (n!)은 아래처럼 재귀적으로 정희할 수 있습니다.
1. 0! = 1
2. n > 0 이면 n! = n x (n - 1)!
// 순차곱셈의 결과를 재귀적으로 구하여 출력
#include <stdio.h>
// 정수 n의 순차곱셈값을 반환
int factorial(int n)
{
if(n>0)
return n * factorial(n-1);
else
return 1;
}
int main(void)
{
int x;
printf("정수를 입력하세요 : ");
scanf("%d"m &x);
printf("%d의 순차곱셈값은 %d입니다.\n", x, factorial(x));
return 0;
}
직접 재귀와 간접 재귀
직접재귀는 자신과 같은 함수를 호출하고, 간접 재귀는 함수 x가 함수 y를 호출하고, 다시 y가 함수 x를 호출하는 구조로 이루어집니다.
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=303672862
Do it! 자료구조와 함께 배우는 알고리즘 입문 : C 언어 편
전편보다 풍부한 도해와 예제로 자료구조와 알고리즘의 개념을 더 쉽게 이해할 수 있도록 구성했다. 또한 다양한 C 언어 표준 라이브러리를 담아 실무에 도움되는 예제들을 추가했다. 자연스럽
www.aladin.co.kr
'프로그래밍언어 > C 언어' 카테고리의 다른 글
| [열혈 C 프로그래밍] 키보드로부터의 데이터 입력과 C언어의 키워드 (0) | 2022.12.16 |
|---|---|
| [혼자 공부하는 C언어] void 포인터 (0) | 2022.12.16 |
| [혼자 공부하는 C언어] 함수 포인터의 활용 (0) | 2022.12.15 |
| [혼자 공부하는 C언어] 함수 포인터의 개념 (0) | 2022.12.15 |
| [혼자 공부하는 C언어] 2차원 배열과 배열 포인터 (0) | 2022.12.13 |