자바 코드업 1902번
재귀함수
https://codeup.kr/problem.php?id=1902
문제 보기
분류: 재귀함수
문제 풀기
base case 와 recursive case 를 나누어 생각하고 재귀 함수를 작성한다.
현재의 재귀 함수에서 다음 재귀 함수로 진입하는 과정에서 출력 코드의 순서를 상기한다.
https://xcevor.tistory.com/220
이전에 풀이 하였던 오름차순으로 출력하는 것에 대비하여 내림차순으로 출력을 진행한다.
이때, 출력 코드와 재귀 함수의 실행 순서는 서로 다른 결과를 보여줌을 확인할 수 있는데 재귀 함수 실행 구조에 대한 이해를 높일 수 있다.
추후 재귀 함수의 적용과 실행에 도움이 될 듯 하다.
코드 보기
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.
// 현재 함수 내의 n 값을 들고 있으며, 다음 재귀 함수에 접근하기 전에 출력이 이루어짐.
System.out.println(n);
fnRecursion (n - 1); // 다음 재귀함수에 접근.
}
}
'공부하기 > 코드업' 카테고리의 다른 글
[Java] 코드업 풀기 1901 - 1부터 n까지 출력하기 (0) | 2023.01.22 |
---|---|
[Java] 코드업 풀기 1166 - 윤년 판별 (2) | 2023.01.22 |