공부하기/코드업

[Java] 코드업 풀기 1901 - 1부터 n까지 출력하기

XEV 2023. 1. 22. 23:44

자바 코드업 1901번

재귀함수

https://codeup.kr/problem.php?id=1901 

 

(재귀 함수) 1부터 n까지 출력하기

$1$부터 정수 $n$까지 출력하는 재귀함수를 설계하시오. 이 문제는 반복문 for, while 등을 이용하여 풀수 없습니다. 금지 키워드 : for while goto

codeup.kr

 

 

 

 

 

문제 보기

분류: 재귀함수

 

 

 

 

 

문제 풀기

base case 와 recursive case 를 나누어 생각하고 재귀 함수를 작성한다.

현재의 재귀 함수에서 다음 재귀 함수로 진입하는 과정에서 출력 코드의 순서를 상기한다.

 

 

 

 

 

코드 보기

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
	    
		Scanner sc = new Scanner(System.in);
		
		int num = sc.nextInt();
		
		fnRecursion (num); // 재귀함수 진입.
		
		sc.close();
	}
	
	public static void fnRecursion (int n) {
	    //////////////////
	    // base case.
	    if (n == 1) {
	        System.out.println(n);
	        return;
	    }
	    
	    //////////////////
	    // recursive case.
	    fnRecursion (n - 1); // 다음 재귀함수에 접근.
	    
	    // 현재 함수 내의 n 값을 들고 있으며, 상단의 재귀함수가 끝날때 까지 출력 대기 상태.
	    System.out.println(n);
	    
	}

}