FireDrago

Lv0 - 팩토리얼 (자바) 본문

코딩테스트/프로그래머스

Lv0 - 팩토리얼 (자바)

화이용 2023. 6. 7. 17:55

문제설명

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;
    }
}