저는 4673번의 문제를 보고 셀프 넘버가 아닌 숫자를 구해서 배열에 넣은다음 배열안에 없는 숫자를 출력하는 식으로 풀어봐야겠다고 생각했습니다.
function selfNumber() {
let dn = 0;
let arr = [];
for (let n = 0; n < 10000; n++) {
if (0 < n && n < 10) {
dn = 2 * n;
} else if (10 <= n && n < 100) {
dn = n + (n % 10) + Math.floor(n / 10);
//1의자리수 10의자리수
} else if (100 <= n && n < 1000) {
dn = n + Math.floor(n / 100) + Math.floor((n % 100) / 10) + (n % 10);
//1의자리수 10의자리수 100의자리수
} else if (1000 <= n && n < 10000) {
dn =
n +
Math.floor(n / 1000) +
Math.floor((n % 1000) / 100) +
Math.floor((n % 100) / 10) +
(n % 10);
//1의자리수 10의자리수 100의자리수 1000의자리수
}
arr.push(dn);
//배열안엔 넣기
}
for (let i = 1; i < 10000; i++) {
if (!arr.includes(i)) {
console.log(i);
//배열안에 포함하지 않은숫자 출력
}
}
}
selfNumber()