본문 바로가기

Algorithms/Programmers

Level 4 - 숫자의 표현

수학을 공부하던 민지는 재미있는 사실을 발견하였습니다. 그 사실은 바로 연속된 자연수의 합으로 어떤 숫자를 표현하는 방법이 여러 가지라는 것입니다. 예를 들어, 15를 표현하는 방법은
(1+2+3+4+5)
(4+5+6)
(7+8)
(15)
로 총 4가지가 존재합니다. 숫자를 입력받아 연속된 수로 표현하는 방법을 반환하는 expressions 함수를 만들어 민지를 도와주세요. 예를 들어 15가 입력된다면 4를 반환해 주면 됩니다.


풀이


public class Expressions {

    public int expressions(int num) {
        int answer = 0;
    int size = num / 2;
    for (int i = 1; i <= size; i++) {
        int sum = 0;
        for (int j = 0; j <= size; j++) {
            sum += i + j;
            if (sum == num) {
                answer++;
                break;
            } else if (sum > num) break;
        }
    }
        return answer + 1 ;
    }

    public static void main(String args[]) {
        Expressions expressions = new Expressions();
        // 아래는 테스트로 출력해 보기 위한 코드입니다.
        System.out.println(expressions.expressions(15));
    }
}


'Algorithms > Programmers' 카테고리의 다른 글

Level 4- 땅따먹기 게임  (1) 2018.03.23
Level 3 - N개의 최소공배수  (0) 2018.03.09
Level 3 - 다음 큰 숫자  (0) 2018.02.28
Level 3 - 야근지수  (0) 2018.02.28
Level 3 - 멀리 뛰기  (0) 2018.02.28