문제 링크 - 하샤드 수
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
x | return |
---|---|
10 | true |
12 | true |
11 | false |
13 | false |
입출력 예 #1
입출력 예 #2
입출력 예 #3
입출력 예 #4
function solution(x) {
const sum = x.toString().split("").map(Number).reduce((acc, cur) => acc + cur, 0);
return x % sum === 0 ? true : false;
}
function solution(x) {
let num = x;
let sum = 0;
do {
sum += x%10;
x = Math.floor(x/10);
} while (x>0);
return !(num%sum);
}
실행 시간이 2배 이상 줄어든다.
do-while 반복문 공부하기.