꼬리 재귀 란 무엇입니까?
Tail Recursion은 메소드가 호출되는 프로그래밍 메소드 호출 유형입니다. 그런 다음 즉시 두 번째 호출의 값을 반환합니다. 다시 말해, 메소드 내부의 최종 문장이 동일한 메소드에 대한 또 다른 호출 일 때 꼬리 재귀가 발생합니다. 두 번째 메소드 호출의 매개 변수는 일반적으로 첫 번째 매개 변수와 다르지만 필요하지 않습니다. 이 재귀가 작동하기 위해서는 그 자체로 호출되는 방법은 숫자, 문자열 또는 다른 물체와 같은 구체적인 가치를 반환해야합니다. 값을 반환하지 않는 void 방법은 재귀에 적합하지 않습니다.
재귀 호출이 호출 방법의 마지막 명령문이어야한다는 것이 반드시 재귀 호출이 메소드의 마지막 줄임을 의미하지는 않습니다. 제어 구조 내부에서 올바른 꼬리 재귀 호출을 찾을 수 있습니다. 즉, 소스 코드에서 제어 구조는 통화가 아닌 메소드를 종료 할 수 있습니다. 이 경우 중요한 차이점은Ntrol 구조는 프로그래밍 진술이 아니라 컴퓨터 언어의 내장 부분입니다.
꼬리 재귀는 Java 및 C ++를 포함한 많은 컴퓨터 언어로 존재합니다. 종종 이러한 재귀 호출은 루프, 루프 또는 GOTO 문과 같은 다른 수단을 사용하여 다시 작성할 수 있습니다. 재귀의 유용성은 동일한 방법으로 많은 순차적 호출을 만들 때 발견됩니다. 재귀는 종종 반복적 인 작업을 수행하는 가장 깨끗하고 쉬운 방법입니다.
꼬리 재귀의 일반적인 예는 숫자의 요인을 계산하는 방법입니다. 이 프로세스는 어느 숫자에서 시작하여, 곱하기 전의 모든 숫자로 인해 이상적입니다. 따라서 5의 계승을 찾으려면 5*4*3*2*1을 곱하는 것이 적절한 과정입니다. 요인 방법이 구성되는 방식으로 인해 재귀가 발생합니다. Factorial이 1 인 경우 1, 그렇지 않으면 숫자 g의 요인을 반환합니다.메소드 마이너스 1에 연결됩니다. 이 방법은 최종 메소드 호출에 대한 제어 명령문의 유무에 관계없이 두 가지 유형의 꼬리 재귀를 사용하여 동등하게 작성할 수 있기 때문에 유용합니다.
.꼬리 재귀는 여러 유형의 재귀의 한 예일뿐입니다. 모든 유형의 재귀의 개념은 본질적으로 동일하며, 어떤 방식으로는 방법이 스스로를 부릅니다. 이러한 유형 중 꼬리 재귀의 구별은 재귀 호출의 값이 즉시 반환되고, 그 호출 후 호출 방법에서는 아무런 일이 발생하지 않는다는 것입니다.
.