> 백엔드 개발 > C++ > 본문

C++ 함수의 재귀 구현: 재귀의 일반적인 용도는 무엇입니까?

WBOY
풀어 주다: 2024-04-22 16:36:01
원래의
1100명이 탐색했습니다.

재귀는 함수가 자신을 호출하는 기술로, 문제가 단계별로 해결되는 시나리오에서 널리 사용됩니다. C++에서 재귀는 다음과 같은 일반적인 용도로 사용됩니다. 피보나치 수 풀기 계승 계산 순열 및 조합 계산 트리 구조 순회 미로 해결 문제 해결

C++ 函数的递归实现:递归的常见用法有哪些?

C++ 함수의 재귀 구현: 프로그래밍에서 재귀의 일반적인 용도 탐색

재귀는 컴퓨터입니다. 함수가 자신을 호출할 수 있도록 하는 과학 기술입니다. 단계별 문제 해결이 필요한 시나리오에서 널리 사용됩니다. 이 기사에서는 C++에서 재귀의 일반적인 용도를 살펴보고 실제 사례를 통해 설명합니다.

기본 사용법: 피보나치 수열

가장 간단한 재귀 사용법은 피보나치 수열을 찾는 것입니다. 이 시퀀스의 각 숫자는 이전 두 숫자의 합입니다. 구체적인 구현은 다음과 같습니다.

int fibonacci(int n) {
  if (n <= 1) {
    return 1;
  } else {
    return fibonacci(n - 1) + fibonacci(n - 2);
  }
}
로그인 후 복사

공장 계산

숫자의 계승을 찾는 것도 고전적인 재귀 응용 프로그램입니다. 계승은 해당 숫자에 그 숫자보다 작은 모든 양의 정수를 곱한 결과입니다.

int factorial(int n) {
  if (n == 0) {
    return 1;
  } else {
    return n * factorial(n - 1);
  }
}
로그인 후 복사

순열 및 조합

재귀를 사용하여 순열 및 조합을 계산할 수도 있습니다. 배열은 특정 순서에 따라 개체를 배열하는 방법인 반면, 조합은 순서에 관계없이 개체를 배열하는 방법입니다.

순열:

int permutations(int n, int r) {
  if (r == 0) {
    return 1;
  } else {
    return n * permutations(n - 1, r - 1);
  }
}
로그인 후 복사

조합:

int combinations(int n, int r) {
  if (r == 0 || n == r) {
    return 1;
  } else {
    return combinations(n - 1, r - 1) + combinations(n - 1, r);
  }
}
로그인 후 복사

트리 구조 순회

재귀는 트리 및 그래프와 같은 트리 구조를 순회하는 데 널리 사용됩니다.

이진 트리 선주문 순회:

void preorderTraversal(TreeNode* root) {
  if (root != nullptr) {
    std::cout << root->val;
    preorderTraversal(root->left);
    preorderTraversal(root->right);
  }
}
로그인 후 복사

실용 사례: 미로 해결

재귀를 사용하면 미로 해결 문제를 해결할 수 있습니다. 재귀 알고리즘은 출구 경로를 찾을 때까지 가능한 모든 경로를 시도하여 작동합니다.

아아아아

위 내용은 C++ 함수의 재귀 구현: 재귀의 일반적인 용도는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿