팩토리얼

2023. 7. 12. 17:46자바/알고리즘

class Solution {
    public int solution(int n) {
        int answer = 0;
        int an=1;
        for(int i=1; i<=n; i++){
            if((an*=i)<=n){
                answer=i;
            }else{
                break;
            }
        }
        return answer;
    }
}

첨엔 if를 2개 써주고 (an*=i)==n 과 (an*=i)<n로 해주었는데 굳이 그런것보단 그냥 하나로 (an*=i)<=n으로 만들며

이게 더 증가 하거나 글면 막아줘야하니 break로 막아준다.

 

이유는 : n이 36~~~~일경우 계속 숫자가 증가하기 때문에 제일 최소값에서 끝내야 하기 때문이다. 

'자바 > 알고리즘' 카테고리의 다른 글

연속된 수의 합  (0) 2023.07.12
옹알이 (1)**  (0) 2023.07.12
2차원으로 만들기 **  (0) 2023.07.12
중복된 문자 제거 **  (0) 2023.07.11
합성수 찾기 **  (0) 2023.07.11