[ java ] JavaFestival11 - Question2 - 연속된 자연수의 합으로 어떤 숫자를 표현하는 방법이 여러 가지가 있다. > java

본문 바로가기
사이트 내 전체검색

java

[ java ] JavaFestival11 - Question2 - 연속된 자연수의 합으로 어떤 숫자를 표현하는 방법이 여러 …

작성자 웹지기
작성일 21-01-07 00:30 | 조회 6,892 | 댓글 0

본문

연속된 자연수의 합으로 어떤 숫자를 표현하는 방법이 여러 가지가 있다.

예를 들어, 15를 표현하는 방법은

(1+2+3+4+5)

(4+5+6)

(7+8)

(15)

로 총 4가지가 존재한다.


숫자를 입력받아 연속된 수로 표현하는 방법을 반환하는 expressions

함수를 만들어 보시오.


예를 들어 15가 입력된다면 4를 반환해 주면 된다.

 

question2.java


public class Question2 {

    public static void main(String[] args) {

        Expressions expressions = new Expressions();

        System.out.println(expressions.expressions(15));

    }

}

 

Expressions.java


public class Expressions {

    public int expressions(int num) {

        int result = 1; // 자기 자신의 경우도 포함 1부터 시작

        for (int i = 1; i <= (num/2); i++) { // 15의 경우 7+8이 마지막 경우에 절반까지만 반복

            int sum = 0;


            for (int j = i; j <= num; j++) {

                sum += j;

                //System.out.println("sum : " + sum);

                if (sum == num) { // sum ==  num  result는 1더하고 종료

                    result += 1;

                    //System.out.println("result : " + result);

                    break;

                } else if (sum > num) { // sum이 num보다 크면 종료

                    break;

                }

            }

        }

        return result;

    }

}

 

결과

4

 

0 0

댓글목록 0

등록된 댓글이 없습니다.

java 목록

Total 113
게시물 검색

회원로그인

접속자집계

오늘
8,379
어제
35,111
최대
61,067
전체
18,110,667

그누보드5
Copyright © funyphp.com. All rights reserved.