뱁새유니버스

[알고리즘9] 재귀호출 이해하기 자바 이클립스 디버깅

by 뱁새유니버스

IT

재귀호출은 전체탐색을 위해 주로 사용합니다.

다중 for문으로 전체 탐색이 가능하나 n중 for문으로 돌리기 어려운 상황이 많기 때문입니다.

import java.util.*;

// 이 프로그램은 사용자로부터 입력받은 숫자 N까지의 재귀 패턴을 출력합니다.
// 주어진 재귀 패턴은 현재 깊이를 출력하고, 해당 깊이가 N보다 작으면 두 번 재귀 호출하는 것입니다.

public class Main {
	
    // 입력을 위한 Scanner 객체 생성
	static Scanner sc = new Scanner(System.in);
	
    // 사용자로부터 입력받을 숫자 N
	static int N;
	
    // 시작과 끝 인덱스 (현재 코드에서는 사용되지 않습니다.)
	static int start, end;
	
    // 재귀 함수 정의
	static void func(int index) {
        // 현재 재귀 깊이 (index)를 출력합니다.
    	System.out.print(index);

        // 만약 현재 깊이가 N과 같다면, 재귀 호출을 중단합니다.
		if(index == N) {
			return;
		}

        // 현재 깊이보다 하나 높은 깊이로 재귀 호출을 두 번 수행합니다.
        func(index + 1); // 첫 번째 재귀 호출
        func(index + 1); // 두 번째 재귀 호출
        
        // 함수를 종료합니다. (이 return은 생략 가능합니다.)
        return;
	}
		
	
    // 메인 함수
	public static void main(String[] args) {
        // 사용자에게 숫자를 입력하라는 메시지 출력
		System.out.println("숫자를 입력하세요.");

        // 사용자로부터 숫자를 입력받아 N에 저장
		N = sc.nextInt();
		
        // 재귀 함수 호출 (시작 깊이는 0)
		func(0);
	}
}

 

 

반응형

블로그의 정보

가슴이 웅장해지는 모든것

뱁새유니버스

활동하기