java 재귀 함수 예제

10의 n-th 전력을 계산해야 한다고 가정합니다. 여기서 우리의 입력은 n. 재귀 방식으로 생각, 우리는 (n-1)-th 전력 10 먼저 계산하고, 10 결과를 곱할 수 있습니다. 따라서 논리적으로 현재 함수의 스택 프레임을 저장할 필요가 없습니다. 앞서 가장 큰 공통 인자 함수 gcf(x, y)는 Cinnameg에서 다음과 같이 정의할 수 있음을 보았습니다. 이제 재귀적인 방법으로 몇 가지 문제를 해결해 보겠습니다. 이 자습서에서는 Java에서 재귀 개념을 소개하고 몇 가지 간단한 예제를 보여 주어 설명했습니다. 해결책: GrayCode.java는 Java의 문자열 데이터 형식을 사용합니다. GrayCodeArray.java는 부울 배열을 사용합니다.

재귀 함수의 두 가지 주요 요구 사항이 있습니다: 컴파일러가 이 점을 활용하여 메모리를 최적화할 수 있지만 Java 컴파일러는 현재로서는 꼬리 재귀에 최적화되지 않는다는 점에 유의해야 합니다. tailFactorial() 메서드는 단일 재귀 예제에서 factorial() 메서드와 동일한 작업을 수행하지만 꼬리 재귀를 사용합니다. 출력은 이전과 동일합니다: 컴퓨터를 사용하지 않고 mcCarthy(50)의 값을 결정합니다. 이 결과를 계산하는 데 mcCarthy()에서 사용하는 재귀 호출 수를 지정합니다. 모든 양수 정수 n에 대해 기본 케이스에 도달했거나 이 함수가 재귀 루프로 들어가는 n 값을 찾습니다. 따라서 숫자 n을 감안할 때, 우리의 문제는 피보나치 시퀀스의 n-th 요소를 찾는 것입니다. 재귀 솔루션을 구현하려면 중지 조건 및 재귀 호출을 파악해야 합니다. 재귀는 솔루션이 동일한 문제의 « 더 작은 » 솔루션을 기반으로 하는 문제를 해결하는 방법입니다. 대부분의 프로그래밍 언어(Java 포함)에서 이 값은 정의에서 자신을 호출하는 함수에 의해 달성됩니다. 재귀 농담으로, « 재류를 이해하려면 먼저 재귀에 이해해야합니다 ». 요인에 대한 단일 재귀 예제를 기억하는 경우 먼저 숫자의 계수를 1에서 필요한 숫자로 계산하는 것보다 알 수 있습니다.

즉, 다른 모든 계산이 완료된 후 계산이 수행됩니다. 이전 장에서 재귀 입력을 검토할 때 몇 가지 재귀 예제를 살펴보았지만 루프를 사용하여 쉽게 해결할 수 있었습니다.