한 가지 유형의 재귀는 단일 재귀이며, 이는 함수가 한 번만 호출한다는 것을 의미합니다. 요인 계산의 이 예를 생각해 보십시오: 그림 18.6을 구현할 때 재귀 방법은 그릴 트리의 트렁크를 나타내기 위해 네 개의 매개 변수를 사용합니다. (재귀의 최상위 수준 아래, 트렁크는 실제로 그려지는 분기의 기준이 될 것입니다.) 이 네 개의 매개변수는 트렁크 베이스의 x- 및 y 좌표, 트렁크 길이 및 트렁크 각도를 나타냅니다. 당사의 factorial() 구현은 모든 재귀 함수에 필요한 두 가지 주요 구성 요소를 나타냅니다. 그러나 특히 유용하지는 않지만 직장에서 재귀를 설명하는 좋은 방법을 설명하는 데 도움이되는 예제로 시작해 보겠습니다. 우리는 피보나치 시퀀스에서 숫자를 계산하는 재귀 방법을 구축 할 것입니다. 이 무한 시퀀스는 0과 1로 시작하여 0과 1로 시작하여 0과 1로 시작하여 0과 1로 생각하며, 각 후속 숫자는 앞의 두 피보나치 숫자의 합계입니다. 따라서 두 번째 숫자는 0 + 1 = 1입니다. 그리고 세 번째 피보나치 번호를 얻으려면 첫 번째 (1)와 두 번째 (1)를 합산하여 2를 얻습니다. 네 번째는 두 번째(1)와 세 번째(2)의 합계이며, 3입니다. 등등. 반복 적 프로그래밍보다 재귀 프로그래밍의 단점은 무엇입니까? 재귀 및 반복 프로그램 모두 동일한 문제 해결 능력을 가지며, 즉 모든 재귀 프로그램을 반복적으로 작성할 수 있으며 그 반대의 경우도 마찬가지입니다. 재귀 프로그램은 기본 케이스에 도달할 때까지 모든 함수가 스택에 남아 있기 때문에 반복 프로그램보다 더 큰 공간 요구 사항이 있습니다.

또한 함수 호출 및 오버헤드 반환으로 인해 더 많은 시간 요구 사항이 있습니다. 예를 들어 – 1, 1, 2, 3, 5, 8, 13, 21, 34 등… 10의 n-th 전력을 계산해야 한다고 가정합니다. 여기서 우리의 입력은 n. 재귀 방식으로 생각, 우리는 (n-1)-th 전력 10 먼저 계산하고, 10 결과를 곱할 수 있습니다. 컴퓨터를 사용하지 않고 mcCarthy(50)의 값을 결정합니다. 이 결과를 계산하는 데 mcCarthy()에서 사용하는 재귀 호출 수를 지정합니다. 모든 양수 정수 n에 대해 기본 케이스에 도달했거나 이 함수가 재귀 루프로 들어가는 n 값을 찾습니다.