Study JS for me/Algorithm
algorithm 연습8
be well
2019. 5. 4. 16:57
문제. sumDigits 함수는 input으로 숫자를 받고 받은 숫자의 각 자릿수의 합을 리턴하고
음수를 받는 경우 맨 앞 자릿수는 음수로 계산해서 리턴.
Ex) input : 1148 => output : 14 (1+1+4+8)
input : -316 => output : 4 (-3+1+6)
해결방안.
1. input 숫자를 양수, 음수에 따라 조건을 나눔.
2. 각 자릿수에 접근하기 위해 문자열로 변경.
3. 한 자릿수 양수,음수의 경우 바로 input을 리턴.
4. 양수의 경우 각 자릿수의 값을 변수 sum에 반복적으로 더해서 누적 값을 리턴.
5. 음수의 경우 맨 앞 자릿수에 -1을 곱해 변수로 설정, 그 수에 나머지 값들을 반복적으로 더해서 누적 값을 리턴.
input의 각 자릿수의 접근을 위해 문자로 변경, sum 과 negative 변수 생성.
function sumDigit(num) {
let numStr = num.toString();
let sum = 0;
let negative = 0;
input이 음수일 경우의 조건을 설정.
변수 negative 에 첫 자릿수 * -1 을 설정하고 나머지 값들을 반복적으로 누적해서 negative 를 리턴.
if(num < 0){
negative = (Number(numStr[1]) * -1);
for(let i = 2; i < numStr.length; i++){
negative += Number(numStr[i])
}
return negative;
}
input이 양수일 경우 sum에 반복적으로 자릿 값들을 누적해서 sum을 리턴.
else {
for(let i = 0; i < numStr.length; i++){
sum = sum += Number(numStr[i])
}
}
return sum;
}
결과확인
