반응형
- 재귀함수 : 함수가 자기자신을 다시 호출하여 문제를 해결하는 함수
- 팩토리얼 문제를 통해 재귀함수 정리
팩토리얼이란?
- 팩토리얼 : 어떤 수 이하의 모든 양의 정수의 곱
- 기호는 !를 사용한다.
- ex) 5! = 5 * 4 * 3 * 2 * 1 = 120
재귀함수를 이용한 팩토리얼 (개념)
fact라는 메서드에 파라미터 x를 넘겨줌
x값이 1이 될 때 까지 x * fact(x-1)을 return
x값이 1이되면 1 return
- fact(5) = 5 * fact(4) return
- fact(4) = 4 * fact(3) return
- fact(3) = 3 * fact(2) return
- fact(2) = 2 * fact(1) return
- fact(1) = 1 return
- => fact(5) = 5 * fact(4) = 5 * 4 * fact(3) = 5 * 4 * 3 * fact(2) = 5 * 4 * 3 * 2 * fact(1) = 5 * 4 * 3 * 2 * 1 = 120
재귀함수를 이용해 팩토리얼 구현 코드
class factorial {
public static void main(String[] args) {
int n = 5;
System.out.println(fact(n)); // 120 출력
}
private static int fact(int x) {
if(x == 1) {
return 1;
}
return x * fact(x-1);
}
}
반응형
'JAVA > 알고리즘 개념 정리' 카테고리의 다른 글
[JAVA] 플로이드-워셜 알고리즘 (Floyd-Warshall) (0) | 2022.06.05 |
---|---|
[JAVA] 벨만포드 알고리즘 (Bellman-Ford) (0) | 2022.06.05 |
[JAVA] 다익스트라 (Dijkstra) (+ Priority Queue을 사용한 시간 단축) (0) | 2022.06.04 |
[JAVA] DFS, BFS (0) | 2022.05.31 |
[JAVA] 다양한 정렬 알고리즘 개념 및 시간 복잡도 비교 (0) | 2022.05.28 |