양의 정수 x가 하샤드 수라면, x의 자릿수들의 합으로 x가 나눠져야 한다. x가 하샤드 수인지 아닌지 판별하는 함수 완성하기
sum에 자릿수의 합을 저장한 뒤, 나눠떨어지면 true 반환, 아니면 false 반환
function solution(x) {
let sum=0;
let num=x;
while (x>0) {
sum += x%10;
x=Math.floor(x/10);
}
if (num%sum===0) return true;
else return false;
}
console.log(solution(11));
true==1, false==0 사용하기
function solution(x) {
let sum=0;
let num=x;
while (x>0) {
sum += x%10;
x=Math.floor(x/10);
}
return !(num%sum);
}
console.log(solution(12));
재귀를 통한 풀이,
*1를 통한 형변환
function solution(x,i=0,sum=0) {
// console.log(typeof (0 + String(x)[0]*1));
//console.log(typeof (String(x)[0]*1)); // => *1해서 number로 만드는 거 신기하다
return String(x).length==i ? x%sum==0 : solution(x,i+1,sum + String(x)[i]*1);
}
console.log(solution(11));