문제 설명
두 정수 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의 대소관계는 정해져있지 않습니다.
생각해본 풀이법.
for문으로 b까지 반복하면서 숫자 더하기
하지만 세가지 경우가 있다.
1. a==b
2. a > b
3. a < b
1번의 경우, 그냥 a 리턴하기
2, 3 번의 경우 반복문 사용!
function solution(a, b) {
let answer = 0;
if (a == b){
return a
} else if (a < b) {
for(a; a <= b; a++){
answer = answer + a;
} return answer
}else{
for(b; a >= b; b++){
answer = answer + b;
} return answer
}
}
흠 쉽게 완성했는데 코드가 좀 더럽네....
다른 사람 답안
function adder(a, b){
var result = 0
return (a+b)*(Math.abs(b-a)+1)/2;
}
function adder(a, b, s = 0){
for (var i = Math.min(a, b); i <= Math.max(a, b); i++) s += i;
return s;
}
삼항연산자 이용
function adder(a, b){
var result = (a<b)?a:b;
while(a!=b){
result += (a<b)?++a:++b;
}
return result;
}