팩토리얼
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 |