article thumbnail image
Published 2022. 11. 28. 23:10


재귀란 본인이 본인을 호출하는 개념이다.

Sum으로 간단하게 재귀에 대해서 알아보자.

 

 

package test;


import java.util.Scanner;

public class test {

	
	static int sum(int n) {
		
		if(n>0) {
			System.out.println("n값: "+n);
			
			return n+sum(n-1);
		}
		System.out.println("s");
		return 0;
	}
	
	
	public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);

        System.out.println("정수를 입력하시오.");
        int x = sc.nextInt();
        
        System.out.println("결과값"+sum(x));
        
    }
}

처음 sum 메서드에 5가 들어갔다고 가정해보자

return에 5+sum(4)가 된다 그럼 다시 sum메서드에 4를 넣어보자

4+sum(3)

3+sum(2)

2+sum(1)

1+sum(0) 

sum(0)은 if문에 충족하지 않아 0을 return해준다

그럼 다시 역순으로

1+sum(0) = 1+0 = 1 = sum(1) 

2+sum(1) = 2+1 = 3 = sum(2)

3+sum(2) = 3+3 = 6 = sum(3)

4+sum(3) = 4+6 = 10 = sum(4)

5+sum(4) = 5+10 = 15 = sum(5)

 

가 된다. 그래서 최종 return은 15가 되는것이다.

 

위에서 표현한것을 다르게 표현하면

sum(5): 5+sum(4) => 5+10 = 15

sum(4): 4+sum(3) => 4+6 = 10 

sum(3): 3+sum(2) => 3+3 = 6

sum(2): 2+sum(1) => 2+1 = 3

sum(1): 1+sum(0) => 1

sum(0):  0 

 

 

 

 

 

 

 

 

 

 

'알고리즘(BOJ) > Silver' 카테고리의 다른 글

1388-바닥장식(BFS)  (0) 2022.12.21
2606-바이러스(BFS)  (0) 2022.12.19
1697 - 숨바꼭질 (BFS)  (0) 2022.12.12
백준 - 10994 별 찍기 19  (0) 2022.12.07
백준-10870 (재귀)  (0) 2022.12.06
복사했습니다!