두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
a와 b의 대소관계는 정해져있지 않습니다.
a | b | return |
---|---|---|
3 | 5 | 12 |
3 | 3 | 3 |
5 | 3 | 12 |
function solution(a, b) {
sum = (a + b) * (Math.abs(a - b) + 1)/ 2
return sum;
}
연속적인 정수의 합은 (a + b) * 갯수 / 2
로 구해주면 된다. 갯수는 a-b+1 로 구해주면 되는데, a와 b 중 어느 것이 클지 모르므로 Math.abs()
함수를 사용해서 절대값으로 바꾼 다음 +1을 해줬다.
function adder(a, b, s = 0){
for (var i = Math.min(a, b); i <= Math.max(a, b); i++) s += i;
return s;
}
내 풀이가 제일 쉽긴 한데 반복문으로도 풀 수 있어서 참고하려고 가져왔다. 초기값 i를 a와 b 중 작은 것으로 설정, a와 b중 큰 것까지 반복하라고 조건을 줬다. 그리고 i를 최종 결과 s에 더하기를 반복해준다.