[BOJ] 백준 10872 - 재귀함수

ho's·2022년 4월 5일
0
post-custom-banner

https://www.acmicpc.net/problem/10872

위 문제이다.

재귀함수에 대해

다음은 위키 백과의 내용을 캡쳐해 보았다.

그림은 재밌어 보이나, 설명은 복잡해 보인다!

간략하게 나타내어보자.

재귀함수(再歸函數)는 정의 단계에서 자신을 재참조하는 함수를 뜻한다. 어떤 사건이 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의될 때 재귀적(recursive)이라고 한다

이를 통해 어떻게 알고리즘을 구현할까, 위의 백준문제 팩토리얼을 보자.
예전 반복문을 공부할 때, 반복문을 통해서 해결을 했었다.

재귀 함수로 바꿔보자

위와 같이 재귀함수를 이용해 팩토리얼을 구할 수 있다.

어제 static과 관련된 내용을 배웠으니 이와 관련하게 코드 분석을 해보자.

  1. main함수가 실행이 될 수 있는 것도, static필드에 있기 때문에 실행이 된다.
  2. static 메소드인 fact도, 메인함수가 객체를 따로 생성하지 않아도 실행할 수 있게 해준다.

fact 함수에 대해

fact 함수는 반환값이 int 형태이고, 매개변수도 int형태이다.
입력받은 n의 값이 0보다 크면, n*fact(n-1)을 반환한다.
그 외의 값들은 1을 반환한다.

5를 입력해보자

5>0 =>5 × faact(4)

= 5 × 4 × fact(3)

= 5 × 4 × 3 × fact(2)

= 5 × 4 × 3 × 2 × fact(1)

= 5 × 4 × 3 × 2* (1 × fact(0))

= 5 × 4 × 3 × 2 × 1

profile
그래야만 한다
post-custom-banner

0개의 댓글