양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
arr | return |
---|---|
10 | true |
12 | true |
11 | false |
13 | false |
음 간단한 문제였다... input이 몇째 자리 숫자인지 매번 확인해야하는 과정을 없애기 위해서 각 자리수를 배열로 가지는 변수를 이용하여 합을 구하고 이로 input이 나머지를 갖는지 가지지 않는 지 확인하면 되는 문제이다.
function solution(x) {
// x의 자리수의 제한이 없음 -> 반복문 사용해서 각 자릿 수의 합을 구한다.
var answer = false;
let sum = 0;
let xArr = (x + '').split('');
xArr.map((val) => {
return sum += Number(val);
});
// x가 sum으로 나누어 떨어지면 true
if(x % sum === 0){
answer = true;
}
return answer;
}