[C04] C언어/자료구조_재귀C언어_자료구조/C언어 기본 개념2021. 8. 31. 18:00
목차
재귀 함수
📌재귀 : 원래의 자리로 되돌아가거나 되돌아옴. 반복, 되풀이
📌재귀 함수 : 함수 내에서 자기 자신을 다시 호출하는 함수
⭐ Code [재귀함수의 탈출 조건]
#include <stdio.h>
void Recursive(int n) {
if (n == 0)
return; //특정 값 반환X, 해당 함수 종료 역할
printf("Recursive Function!!\n");
Recursive(n-1);
}
int main() {
Recursive(3);
return 0;
}
⭐ Code [1부터 n까지의 합]
#include <stdio.h>
int Func(int n)
{
if (n == 1)
return 1;
else
return n + Func(n-1);
}
int main() {
int num;
printf("입력 : ");
scanf("%d", &num);
printf("출력 : %d", Func(num));
return 0;
}
⭐ Code [팩토리얼을 재귀함수로 구현]
#include <stdio.h>
int Factorial(int n)
{
if (n == 1)
return 1;
else
return n * Factorial(n - 1);
}
int main() {
int num;
printf("입력 : ");
scanf("%d", &num);
printf("출력 : %d", Factorial(num));
return 0;
}
⭐ Code [피보나치 수열을 재귀함수로 구현]
#include <stdio.h>
int fibo(int n)
{
if (n == 1 || n == 2)
return 1;
else
return fibo(n - 1) + fibo(n - 2);
}
int main()
{
int num;
printf("입력 : ");
scanf("%d", &num);
printf("출력 : %d", fibo(num));
}
⭐ Code [하노이 탑을 재귀함수로 구현]
#include <stdio.h>
int Hanoi(int n, char a, char b, char c)
{
if (n <= 1)
{
printf("%d -> %c\n", n, c);
return;
}
else
{
Hanoi(n - 1, a, c, b);
printf("%d -> %c\n", n, c);
Hanoi(n - 1, b, a, c);
}
}
int main()
{
int num;
printf("입력 : ");
scanf("%d", &num);
printf("출력 : \n");
Hanoi(num, 'A', 'B', 'C');
}
728x90
반응형
LIST
'C언어_자료구조 > C언어 기본 개념' 카테고리의 다른 글
[C06] C언어/자료구조_동적 할당(malloc, free) (2) | 2021.09.14 |
---|---|
[C05] C언어/자료구조_구조체(기본, 별칭, 익명 구조체) (0) | 2021.09.07 |
[C03] C언어/자료구조_변수 (0) | 2021.08.24 |
[C02] C언어/자료구조_반환값에 따른 함수의 여러가지 형태 (0) | 2021.08.17 |
[C01] C언어/자료구조_포인터 기본 개념 (2) | 2021.08.11 |
@kdj :: Childev'note
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!