반응형
import java.util.HashMap;
import java.util.Scanner;
public class Factorial {
static int factorial(int n) {
if(n > 0)
return n * factorial(n - 1);
else
return 1;
}
public static void main(String[] args) {
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요 : ");
int x = sc.nextInt();
System.out.println(x + "의 팩토리얼은 "+ factorialMemoization(x, map)+"입니다");
System.out.println(x + "의 팩토리얼은 "+ factorial(x)+"입니다");
}
static int factorialMemoization(int num, HashMap map){
if(map.containsKey(num)){
return (int) map.get(num);
}else{
if(num > 0){
int temp = num * factorial(num - 1);
map.put(num, temp);
return temp;
}else{
return 1;
}
}
}
}
반응형
'코딩테스트' 카테고리의 다른 글
[Python] 코딩도장 23.7 지뢰찾기 (0) | 2022.07.27 |
---|---|
[python] 백준 알고리즘 2525 오븐 시계 (0) | 2022.07.25 |
[JAVA] 피보나치 수열 구하기 (재귀, 메모화) (0) | 2022.07.23 |
[JAVA] 재귀함수 메모화 (0) | 2022.07.23 |
[JAVA] 최대공약수 찾기 (0) | 2022.07.23 |