설명 : 프로그램 호출의 프로그래밍 기술을 재귀라고합니다.
프로그램 자체 호출 프로그램의 프로그래밍 기술을 재귀라고합니다. 재귀는 프로그래밍 언어의 알고리즘으로 널리 사용됩니다. 프로세스 또는 기능에는 정의 또는 설명에서 직접 또는 간접적으로 호출하는 방법이 있습니다. 일반적으로 크고 복잡한 문제 레이어를 레이어별로 변환하여 원래 문제와 유사한 작은 문제로 변환합니다. 재귀 전략은 문제 해결 프로세스에 필요한 다중 반복 계산을 설명하기 위해 소수의 프로그램 만 필요하며 프로그램의 코드 양을 크게 줄입니다. 재귀의 능력은 무한한 객체 세트를 정의하기 위해 유한 한 진술을 사용하는 데 있습니다.
재귀를위한 세 가지 조건 :
1. 경계 조건
2. 재귀 진보 섹션
3. 재귀 적으로 세그먼트를 반환합니다
경계 조건이 충족되지 않으면 재귀 적으로 진행하십시오. 경계 조건이 충족되면 재귀 적으로 반환하십시오.
다음은 두 가지 예제입니다.
1. Java 코드를 사용하여 5의 계승자를 찾으십시오 (5 = 5*4*3*2*1)
패키지 org.wxp. 재고; / ***5의 계승 (결과 = 5*4*3*2*1)*@Author Championship.wong*/ public class test01 {public static void main (String [] args) {System.out.println (f (5)); } public static int f (int n) {if (1 == n) 반환 1; 그렇지 않으면 n*(n-1)을 반환합니다. }} 이 질문에서 재귀의 세 가지 조건은 분석됩니다.
(1) 경계 조건 : Factorial, 마지막 숫자, 즉 1, 리턴 1에 곱하면 프로그램이 끝까지 실행됩니다.
(2) 재귀 발전 섹션 : 현재 매개 변수가 1과 같지 않은 경우 계속해서 자신을 부르십시오.
(3) 재귀 적으로 반환 세그먼트 : 가장 큰 숫자에서 시작하십시오. 현재 매개 변수가 5 인 경우 5*4, 즉 5*(5-1), 즉 N*(N-1)입니다.
2. Java 코드를 사용하여 순서 : 1, 1, 2, 3, 5, 8 ...... 40 번째 숫자 번호
패키지 org.wxp. 재고; / *** 순서를 찾으십시오 : 1, 1, 2, 3, 5, 8 ...... 40 번째 숫자 번호*/ public class test_02_fibonacci {public static void main (String [] args) {System.out.println (f (6)); } public static int f (int n) {if (1 == n || 2 == n) 반환 1; 그렇지 않으면 f (n-1) + f (n-2)를 반환합니다. }} 3. 문제 설명 : Fibonacci 시퀀스의 10 번째 위치의 값을 해결합니까? (황금-파이브 시퀀스로도 알려진 Fibonacci 서열은 순서를 지칭한다 : 1, 1, 2, 3, 5, 8, 13, 21, ... 피보나키 시퀀스는 다음 재귀 방법에서 정의된다 : f0 = 0, f1 = 1, fn = f (n-1)+f (n>) (n>).
프로그램 목록 :
/** *<p> 제목 : Java 재귀 알고리즘 예 </p> *<p> 설명 : 재귀 알고리즘을 사용하여 fibonacci 시퀀스의 다섯 번째 값을 해결합니다. </p> *<p> filename : fibonacci.java </p> */public classe the Solopity the algorive the adgorive the the fibonacci 시퀀스 *입력 매개 변수 : int n *return 유형 : int */ public static int fun (int n) {if (1 == n || 2 == n) {return 1; } else {return (fun (n-1) + fun (n-2)); }} / ** *메소드 설명 : 기본 메소드 *입력 매개 변수 : 문자열 [] args *리턴 유형 : void * / public static void main (String [] args) {system.out.println (fun (10)); }}실행 결과는 다음과 같습니다.
다음과 같이 코드를 복사하십시오. 55