프로그래머스 숫자의 표현
자연수 n이 주어질 때 연속된 숫자의 합이 n이 되는 방법이 몇가지인지 반환하는 함수를 완성하세요.
예시
n = 15
1+2+3+4+5 = 15
4+5+6 = 15
7+8 = 15
15 = 15// 4
n이 되기 위한 연속된 수의 합을 구할때 n/2를 초과하는 수에서 나올 수 없습니다. (자기 자신 제외)
1부터 n/2까지 순회하며 자기 앞의 숫자를 더하다가 n과 같아지면 카운트해줍니다.
let answer = 1;
n/2 이상의 수는 순회하지 않기 때문에 자기 자신을 카운트해줍니다.
for(let start = 1; start < n/2; start++){
let end = start;
let sum = 0;
while(sum <= n){
sum += end;
if(sum === n) answer++;
end++;
}
}
function solution(n) {
let answer = 1;
for(let start = 1; start < n/2; start++){
let end = start;
let sum = 0;
while(sum <= n){
sum += end;
if(sum === n) answer++;
end++;
}
}
return answer;
}