[ java ] JavaFestival11 - Question2 - 연속된 자연수의 합으로 어떤 숫자를 표현하는 방법이 여러 가지가 있다.
페이지 정보
작성자 웹지기 댓글 0건 조회 2,834회 작성일 21-01-07 00:30본문
연속된 자연수의 합으로 어떤 숫자를 표현하는 방법이 여러 가지가 있다.
예를 들어, 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
댓글목록
등록된 댓글이 없습니다.