728x90
반응형
C 언어로 재귀 함수 활용하기
이 예제에서는 C 언어에서 재귀 함수를 정의하고 활용하는 방법을 알아보겠습니다. 재귀 함수는 함수 내에서 자기 자신을 호출하는 것으로, 문제를 작은 부분으로 나누어 해결할 수 있을 때 유용합니다.
예제 1: 팩토리얼 계산
재귀 함수를 사용하여 팩토리얼을 계산하는 C 프로그램의 예제 코드입니다:
#include
int factorial(int n) {
if (n <= 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int num = 5;
int result = factorial(num);
printf("%d의 팩토리얼: %d\n", num, result);
return 0;
}
예제 2: 피보나치 수열
재귀 함수를 사용하여 피보나치 수열을 계산하는 C 프로그램의 예제 코드입니다:
#include
int fibonacci(int n) {
if (n <= 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int main() {
int num = 6;
int result = fibonacci(num);
printf("%d번째 피보나치 수: %d\n", num, result);
return 0;
}
예제 3: 거듭제곱 계산
재귀 함수를 사용하여 거듭제곱을 계산하는 C 프로그램의 예제 코드입니다:
#include
double power(double base, int exponent) {
if (exponent == 0) {
return 1;
} else {
return base * power(base, exponent - 1);
}
}
int main() {
double base = 2.0;
int exponent = 3;
double result = power(base, exponent);
printf("%lf의 %d 거듭제곱: %lf\n", base, exponent, result);
return 0;
}
예제 4: 숫자 합 계산
재귀 함수를 사용하여 숫자 합을 계산하는 C 프로그램의 예제 코드입니다:
#include
int sum(int n) {
if (n <= 0) {
return 0;
} else {
return n + sum(n - 1);
}
}
int main() {
int num = 4;
int result = sum(num);
printf("1에서 %d까지의 합: %d\n", num, result);
return 0;
}
예제 5: 이진 탐색
재귀 함수를 사용하여 정렬된 배열에서 이진 탐색을 수행하는 C 프로그램의 예제 코드입니다:
#include
int binarySearch(int arr[], int left, int right, int target) {
if (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
return binarySearch(arr, mid + 1, right, target);
} else {
return binarySearch(arr, left, mid - 1, target);
}
}
return -1;
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int target = 5;
int size = sizeof(arr) / sizeof(arr[0]);
int result = binarySearch(arr, 0, size - 1, target);
if (result != -1) {
printf("%d는 배열에서 %d번째 위치에 있습니다.\n", target, result);
} else {
printf("%d는 배열에서 찾을 수 없습니다.\n", target);
}
return 0;
}
728x90
반응형
'IT기초 > C 언어' 카테고리의 다른 글
[C언어] 이중포인터 사용법 - 예제 코드 포함 (0) | 2023.09.06 |
---|---|
[c언어] 포인터와 배열 조합 사용법 - 예제 코드 포함 (0) | 2023.09.06 |
[C언어] 파일 입출력 사용법 - 예제 코드 포함 (0) | 2023.09.06 |
[c언어] 포인터 사용 방법 - 예제 코드 포함 (0) | 2023.09.06 |
[c언어] 구조체 (struct) 사용 방법 - 예제 코드 포함 (0) | 2023.09.06 |