-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExpressNumber.java
More file actions
36 lines (33 loc) · 984 Bytes
/
Copy pathExpressNumber.java
File metadata and controls
36 lines (33 loc) · 984 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package level2;
public class ExpressNumber {
public static void main(String[] args) {
SolutionExpressNumber su = new SolutionExpressNumber();
int n = 15;
System.out.println(su.solution(n));
}
}
class SolutionExpressNumber {
public int solution(int n) {
int answer = 1; // 자기 자신은 무조건 포함
int sum; // 누적 수
int range = n / 2 + 1; // 연속된 자연수 합으로 자신을 표현하는 범위는 최대 자신의 반의 +1
for(int i=1; i<range; i++) {
sum = i;
for(int j=i+1; j <= range && sum < n; j++) {
sum += j;
if(sum == n)
answer ++;
}
}
return answer;
/* !! 주어진 자연수를 연속된 자연수의 합으로 표현하는 방법의 수는 주어진 수의 홀수 약수의 개수와 같다라는 정수론 정리 !!
* int answer = 0;
for (int i = 1; i <= num; i += 2) {
if (num % i == 0) {
answer++;
}
}
return answer;
*/
}
}