728x90
반응형
3. 팩토리얼
자연수 N이 입력되면 N!를 구하는 프로그램을 작성하세요.
(ex. 5! = 5*4*3*2*1= 120)
입력설명
첫 번째 줄에 자연수 N(1<=N<=100)이 주어집니다.
출력설명
첫 번째 줄에 N팩토리얼 값을 출력합니다.
입력예제
5
출력예제
120
package recursive.ch07_3;
import java.util.Scanner;
public class Recursive03 {
private static int answer=1;
public static void main(String[] args) {
Scanner kb= new Scanner(System.in);
int n=kb.nextInt();
solution(n);
}
static void solution(int n) {
DFS(n);
System.out.println(answer);
}
static void DFS(int n ) {
if(n==0) {
return;
}
else {
DFS(n-1);
answer*=n;
}
}
}
+) 세련된 풀이
package recursive.ch07;
import java.util.Scanner;
class Recursive03 {
// 팩토리얼
// n!
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
DFS(n);
}
static int DFS(int n) {
if (n == 1)
return 1;
// 마지막은 항상1
else
return n * DFS(n - 1);
// 5-> 5*DFS(4)-> 1*2*3*4*5
}
}
728x90
반응형
'Java > Java 알고리즘 인프런' 카테고리의 다른 글
[Ch.07 - DFS] 01. 이진트리 순회 (+ 깊이우선탐색 DFS) (0) | 2022.07.18 |
---|---|
[Ch.07 - Recursive] 04. 피보나치 수열 (+메모이제이션) # (0) | 2022.07.18 |
[Ch.07 - Recursive] 02. 재귀함수를 이용한 이진수 출력 (0) | 2022.07.18 |
[Ch.07 - Recursive] 01. 재귀함수 (0) | 2022.07.18 |
[Ch.09 - Greedy] 04. 최대 수입 스케줄 (0) | 2022.07.18 |