FireDrago
Lv0 - 팩토리얼 (자바) 본문
문제설명
i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
- i <= n
입출력 예
| n | result |
| 3628800 | 10 |
| 7 | 3 |
생각정리
1. 팩토리얼은 재귀함수를 이용해서 구한다.
public int factorial (int a) {
if (a <= 1) {
return a;
}
return factorial(a-1)*a;
2. a 를 1씩 증가시키면서 n보다 커질때 까지 반복문 돌린다. (while 몇번 돌지 횟수 모르니까)
class Solution {
int value =1;
public int solution(int n) {
int answer = 0;
int a =1;
while (factorial(a) <=n) {
answer = a;
a++;
}
return answer;
}
public int factorial (int a) {
if (a <= 1) {
return a;
}
return factorial(a-1)*a;
}
}'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| Lv0 - 중복문자 제거 (자바) (0) | 2023.06.12 |
|---|---|
| Lv0 - 공던지기 (자바) (0) | 2023.06.08 |
| Lv0 - 약수 구하기 (약수 알고리즘)(자바) (0) | 2023.06.06 |
| Lv0 - 외계행성의 나이 (자바) (0) | 2023.06.06 |
| lv0 - 최빈값 구하기 (자바) (0) | 2023.06.05 |
