양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
하샤드 수는 그 숫자의 각 자릿수를 더한 값으로 그 숫자가 나누어지는 숫자다
예를 들어서 숫자 18을 보면:
각 자릿수를 더하면: 1 + 8 = 9
원래 숫자(18)를 이 자릿수 합(9)으로 나누면 18 ÷ 9 = 2
나누어 떨어지니까 18은 하샤드 수다
다른 예를 들어볼게요. 숫자 13을 보면:
각 자릿수를 더해요: 1 + 3 = 4
원래 숫자(13)를 이 자릿수 합(4)으로 나눠봐요: 13 ÷ 4 = 3.25
나누어 떨어지지 않으니까 13은 하샤드 수가 아니에다
function solution(x) {
//숫자를 다 더한다
var sumOfDigits = 0;
var number = x;
while (number > 0) {
sumOfDigits += number % 10;
number = Math.floor(number / 10);
}
// 2. 더한걸로 원래 숫자가 나눠지는지 확인
return x % sumOfDigits === 0;
}
sumOfDigits 변수에 자릿수의 합을 저장
number 변수는 입력받은 숫자 x를 복사해서 사용
while 문을 사용해서 숫자의 각 자릿수를 더함
number % 10은 숫자의 마지막 자릿수를 가져옴
Math.floor(number / 10)은 마지막 자릿수를 제거한 숫자를 만듬
모든 자릿수를 더한 후, 원래 숫자 x가 이 합으로 나누어지는지 확인
이제 이 코드를 실행하면 입력한 숫자가 하샤드 수인지 쉽게 알 수 있다
예를 들어, x = 18을 넣으면 true가 나오고, x = 13을 넣으면 false가 나옴
ex ) 10
1+ 0 =1
10/1 =10
나눠 떨어지니까 하사드 수 다
숫자 13
1+3 =4
13/4 =3.25
나눠떨어지지 않음 하사드 수 아님 .
console.log(solution(10)); // true
console.log(solution(12)); // true
console.log(solution(11)); // false
console.log(solution(13)); // false
오늘은 하사드 수 에 대해서 배웠다
책 사서 다시 html , css tag 를 보는 중
js 문법 강의 3 주차 돌파 !
그리고 개인 과제 하는중 ..
나만 이렇게 오래걸리나 ...
오늘도 밤새 불태워 !!!
공부 ... !!!
정말 배울 게 많은 거 같아서
챌린지 된다
의욕 뿜뿜
나중에 취업 해서 이 til 을 읽어보며 ,
저땐 저랬었지 !
저땐 다 어려웠엇지
하면서 회상 하는 날이 오기를 !
무조건 3 번이상 보고 배우고 쓰기 반 복
무한 반복 무한 반복 !!
처음에 유학가서 시험을 봐야하는데
영어를 몰라서 다 F 받았다
영어도 모르고 과학 , 물리 ,화학 아무것도 몰라서
진짜 그냥 교과서를 통째로 달달달 외웠다
그렇게 겨우 통과 .. 잼 ... ㅋㅋㅋ
자바스크립트도 외우지말라는데
난 외울꺼다 ..
내 머리가 이해할때 까지 . !!
조금 아주 느리게 배우는 편이지만 ..
거북이속도로 ..
모든 것에 대해서 다 배우고 정점을 찍고 내려오는 것이 취미라
이번에도 그렇게 할 것이다 ..
자기 전에 눈감도 머리속에서 외운것들 시불이고 잔다
나는 이 4개월 과정을 다끝내고 ,
멋지게 개발자의 길을 걸 을 것이다 !!
아자아자 !!
072924 TIL (0) | 2024.07.29 |
---|---|
072728TIL , WIL (0) | 2024.07.28 |
240726 TIL (0) | 2024.07.26 |
072524 TIL 조건 문 ,반복문 (0) | 2024.07.25 |
072424 TIL (0) | 2024.07.24 |