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

본문 바로가기

사이트 내 전체검색

java

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

작성일 21-01-07 00:30

페이지 정보

작성자 웹지기 조회 2,836회 댓글 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

댓글목록

등록된 댓글이 없습니다.

전체 113건 1 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기