자바 재귀 -08 일 연구 노트

재귀

  • 방법 A는 방법 B를 호출하므로 이해하기 쉽습니다!

  • 재귀는 : 메서드 호출은 A 메서드를 사용합니다!

재귀를 사용하면 간단한 프로그램을 사용하여 복잡한 문제를 해결할 수 있습니다. 일반적으로 크고 복잡한 문제를 해결하기 위해 원래 문제와 유사한 더 작은 문제로 계층별로 변환합니다. 재귀 전략은 문제를 해결하는 데 필요한 여러 반복 계산을 설명하는 데 적은 수의 프로그램 만 필요하므로 문제의 양을 크게 줄입니다. 프로그램 코드 : 재귀의 능력은 제한된 문을 사용하여 무한한 개체 집합을 정의하는 데 있습니다.

재귀 구조는 두 부분으로 구성됩니다.

  • 재귀 헤더 :

자체 메서드를 호출하지 않을 때. 머리가 없으면 죽음의 순환에 빠질 것입니다.

  • 재귀 본문 : 자체 메서드를 호출해야 할 때.
package com.xin.method;

public class Demo06 {
    
    
    //2!=2*1
    //3!=3*2*1
    //5!=%*4*3*2*1 阶乘

    public static void main(String[] args) {
    
    

        System.out.println(f(5));

    }

     //1!=1
    //2 2*f(1)
    //3 2*f(2)
    public static int f(int n){
    
    
        if (n==1){
    
    
            return 1;
        }else{
    
    
            return n*f(n-1);  //调用自己
        }
    }

}

메인 —— → f (5) —— → f (4) —— → f (3) —— → f (2) —— → f (1)

f (1)에서 2로 값 전달 —— → f (2) —— → f (3) —— → f (4) —— → f (5) —— → Main (출력)

재귀 요약

경계 조건 경계

사전 무대

리턴 단계 n * (n-1)

Java는 스택 메커니즘에 속하므로 깊이가 상대적으로 크면 많은 공간과 메모리를 차지하는 데 적합하지 않습니다.

베이스가 상대적으로 작은 상황에 적용 가능

재귀없이 재귀없이 할 수 있습니까?

추천

출처blog.csdn.net/yibai_/article/details/114497780