https://www.acmicpc.net/problem/10872
접근 :
- N 을 받았을 때, 1이하 일 때에는 1을 결과로 출력
- 1 보다 큰 N 일 때, N을 곱하고 N이 1이 될 때까지 1 씩 감소 시키며 같은 과정을 반복
- 해당 과정을 재귀함수로 구현
main에서 factorial 메서드 호출시 다음과 같은 시퀀스가 일어남. (n = 5 일때, 예시)
코드 구현:
public class Main {
public static int factorial(int n, int result) {
if (n <= 1) {
return result;
}
return factorial(n - 1, n * result);
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
// 결과 화면출력
System.out.println(factorial(n, 1));
br.close();
}
}
'JAVA > Coding Test' 카테고리의 다른 글
[JAVA] 백준 10815 숫자카드_집합과맵 (0) | 2023.03.01 |
---|---|
[JAVA] 백준 10870 피보나치 수 5_ 재귀함수 (0) | 2023.03.01 |
[JAVA] 백준 2798 블랙잭_브루트포스 (0) | 2023.02.28 |
[JAVA] 백준 2231 분해합_브루트포스 (0) | 2023.02.28 |
[JAVA] 백준 7568 덩치_브루트포스 (1) | 2023.02.28 |