문제
나의 생각
팩토리얼 함수를 이용해서 값이 매개변수보다 작거나 같을때는 for문의 i 값을 answer에 담는 방식으로 접근.
나의 답안
public static int solution(int n) {
int answer = 0;
for (int i = 1; i <= 10; i++){
if (fact(i) <= n){
answer = i;
} else {
break;
}
}
return answer;
}
public static int fact(int n) {
if (n <= 1){
return 1;
} else {
return fact(n-1)*n;
}
}
다른 답안
팩토리얼 함수를 사용하는 형식은 다양하다. while문으로 처리하는 방식이 좀 더 깔끔해 보이니 다음에는 해당 방식을 사용토록 해야겠다.
class Solution {
public int solution(int n) {
int fac = 1;
int i = 0;
while(true){
if(fac <= n){
fac *= i + 1;
i++;
}else break;
}
return i-1;
}
}