산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C 재귀

C 재귀

이 튜토리얼에서는 예제를 통해 C 프로그래밍에서 재귀 함수를 작성하는 방법을 배웁니다.

자신을 호출하는 함수를 재귀 함수라고 합니다. 그리고 이 기술을 재귀라고 합니다.

<시간>

재귀는 어떻게 작동합니까?

void recurse()
{
    ... .. ...
    recurse();
    ... .. ...
}

int main()
{
    ... .. ...
    recurse();
    ... .. ...
}
<그림>

재귀는 그것을 방지하기 위해 어떤 조건이 충족될 때까지 계속됩니다.

무한 재귀를 방지하기 위해 if...else 문(또는 유사한 접근 방식)을 사용하여 한 분기에서는 재귀 호출을 수행하고 다른 분기는 수행하지 않을 수 있습니다.

<시간>

예:재귀를 사용한 자연수의 합

#include <stdio.h>
int sum(int n);

int main() {
    int number, result;

    printf("Enter a positive integer: ");
    scanf("%d", &number);

    result = sum(number);

    printf("sum = %d", result);
    return 0;
}

int sum(int n) {
    if (n != 0)
        // sum() function calls itself
        return n + sum(n-1); 
    else
        return n;
}

출력

Enter a positive integer:3
sum = 6
<시간>

처음에는 sum() main()에서 호출됩니다. 숫자가 있는 함수 인수로 전달되었습니다.

n의 값을 가정합니다. sum() 내부 처음에는 3이다. 다음 함수 호출 중에 2가 sum()에 전달됩니다. 기능. 이 프로세스는 n까지 계속됩니다. 0과 같습니다.

n일 때 0과 같습니다. if 조건이 실패하고 else 부분이 실행되어 정수의 합을 궁극적으로 main()로 반환합니다. 기능.

<그림> <시간>

재귀의 장점과 단점

재귀는 프로그램을 우아하게 만듭니다. 그러나 성능이 중요한 경우 재귀가 일반적으로 훨씬 느리므로 대신 루프를 사용하십시오.

즉, 재귀는 중요한 개념입니다. 데이터 구조 및 알고리즘에서 자주 사용됩니다. 예를 들어, 트리 순회와 같은 문제에서 재귀를 사용하는 것이 일반적입니다.


C 언어

  1. C# Hello World - 첫 번째 C# 프로그램
  2. C# 키워드 및 식별자
  3. C# 변수 및 (기본) 데이터 형식
  4. C# 연산자
  5. C# 비트 및 비트 시프트 연산자
  6. C# 기본 입력 및 출력
  7. C# 식, 문 및 블록(예제 포함)
  8. C# 주석
  9. C# switch 문
  10. C# 삼항(? :) 연산자