JS.연습문제 (하샤드 수)

Vorhandenheit ·2021년 6월 16일

JS.연습문제

목록 보기
5/12
post-thumbnail

<문제>

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야함
예를 들어 18자리의 수의 합은 1+8 = 9이고 18은 9로 나누어떨어지므로 하샤드 수임
자연수 x를 입력받아 x가 ㅎ샤드 수인지 아닌지 검사하는 함수 solution을 완성

//x를 문자열로 바꾼 후에, split으로 구분
// x의 인덱스 0과 1의 합은 또 x로 나누어떨어지면 하샤드 수

function solution(x) {
	let answer = String(x).split('')
    if ((Number(answer[0]) + Number(answer[1)) % 2 === 9) {
    	return true
    }
 return false
}

둘째자리까지 밖에 고려하지않았디.
나중에 다시 푼다면 또 다르게 할것이다.


<다른사람의 풀이>

function solution(x) {
	let sum = String(x).split("")reduce((acc, cur) => acc + Number(cur), 0);
	return !( % sum)
}
  • reduce :배열.reduce((누적값, 현재값, 인덱스, 요소) = > {return 결과값}, 초깃값);

<또 다른 사람의 풀이>

function Harshad(n) {
	let result;
  	let str = n.toString();
 	let sum = parseInt(str[0]);
  	
  	for (let i = 1; i < str.length; i++) {
    	sum += parseInt(str[i])
    }
  	
  	result = n % sum ? false : true
  return result;
}
profile
읽고 기록하고 고민하고 사용하고 개발하자!

0개의 댓글