하샤드 수

하샤드 수
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// https://programmers.co.kr/learn/courses/30/lessons/12947
function solution(x) {
let answer = true;
const saveX = x;
x += '';
arr = x.split('');
arr = arr.map(Number);
const result = arr.reduce((prev, curr) => {
return curr + prev;
}, 0);
if (saveX % result != 0) {
answer = false;
}
return answer;
}
result = solution(10);

해설

  • 정수 입력이 들어오면 하샤드 수인지 판별하여 bool을 반환
  • 정수를 자릿수별로 조작하기 위해 문자열로 캐스팅
  • 문자열을 배열로 변환
  • 배열의 각 원소는 문자인데 map으로 숫자로 캐스팅
  • reduece로 자릿수의 합을 구합
  • 나누어 떨어지는 확인

하샤드 수

1
2
3
4
5
6
7
8
9
18
1 + 8 = 9
18 % 9 == 0
18은 하샤드 수!

19
1 + 9 = 10
19 * 10 != 0
19는 아님!
  • 자릿수를 모두 더한다.(10진수 기준)
  • 자릿수를 모두 더한 합으로 원래 수를 나눴을 때 나누어 떨어지는지 판별한다
Author

chinsung

Posted on

2020-09-18

Updated on

2021-08-04

Licensed under

댓글