반응형
c언어 순환 호출하기
네 안녕하세요, 이번 포스팅에서는 순환 호출에 대하여 알아보도록 하겠습니다.
순환 기법은 프로그래밍을 할 때 정말 많이 사용하는 방법이기 때문에 잘 숙지해두시면 좋습니다.
그럼 지금부터 시작하도록 하겠습니다.
1. 순환 호출이란?
프로그래밍에서 순환이란 하나의 프로그래밍 기법입니다.
자기 자신을 호출을 하여 문제를 해결하는 방법입니다.
실제로 함수는 자기 자신을 호출을 하는 것 역시 허용이 되기 때문에 가능한 방법이며,
오류를 해결하고자 할 때 이러한 기법을 써서 해결을 보곤 합니다.
1 - 1. 순환 함수의 구조
순환 함수는 크게 두 가지 부분으로 구성이 되어있습니다.
- 자기 자신을 호출하는 부분
- 순환 호출을 멈추는 부분
이렇게 구성이 됩니다.
그리고 여기에서 순환을 멈추는 부분이 부재할 경우에는 시스템 스택을 계속 쌓아서 다 사용했을 때 에러를 내면서 프로그램을 종료를 하게 됩니다.
제가 간단한 예제를 들어 한 번 이야기를 해보도록 하겠습니다.
#include <stdio.h>
long factorial();
int main()
{
int n;
printf("정수를 입력하세요 : ");
scanf("%d", &n);
printf("%d!은 %d입니다.\n", n, factorial(n));
return 0;
}
long factorial(int n1)
{
printf("factorial(%d)\n", n1);
if(n1 <= 1)
{
return 1;
}
else
{
return n1 * (factorial(n1 - 1));
}
}
반응형
이렇게 한 번 작성을 해봤습니다.
그럼 결과를 한 번 보도록 하겠습니다.
정수를 입력하세요 : 6
factorial(6)
factorial(5)
factorial(4)
factorial(3)
factorial(2)
factorial(1)
6!은 720입니다.
이렇게 자기 자신이 호출이 되어서 순환이 되다가 제일 마지막인 0에 다다를 때 종료가 되는 모습을 볼 수가 있습니다.
이런 식으로 사용을 하는데,
제일 대표적인 예시 중 하나가 바로 팩토리얼을 이용을 하는 것이라서 이렇게 보여드리게 되었습니다.
여기까지 순환 호출에 대하여 알아보았는데요,
다음 포스팅에서는 지금까지 배운 것들을 토대로 여러 가지 문제를 풀어보면서 코딩 실력을 늘리는 시간을 가져보도록 하겠습니다.
긴 글 읽어주신 독자분들께 진심으로 감사합니다~
반응형
'c언어' 카테고리의 다른 글
c언어 배열 기초 알아보기 (0) | 2022.12.06 |
---|---|
c언어 변수 이용하여 문제 풀기(은행 계좌 구현하기, 초기화를 한 번만 하기, 난수 발생기 만들기, 10진수를 2진수로 출력하기, 하노이의 탑 문제 풀기) (0) | 2022.12.06 |
c언어 가변 매개 변수 함수 알아보기 (0) | 2022.12.06 |
c언어 적절한 저장 유형 사용방법 알아보기(static, register, extern) (0) | 2022.12.06 |
c언어 연결 알아보기(외부 연결, 내부 연결, extern 지정자, static 지정자) (0) | 2022.12.06 |
댓글