Does my number look big in this? ( 6 kyu )
문제
A Narcissistic Number is a number which is the sum of its own digits, each raised to the power of the number of digits.
For example, take 153 (3 digits):
1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153
and 1634 (4 digits):
1^4 + 6^4 + 3^4 + 4^4 = 1 + 1296 + 81 + 256 = 1634
Narcissistic Number를 판별하는 문제
풀이
function narcissistic( value ) {
let str = value.toString(), len = str.length, sum = 0;
for ( let i = 0; i < len; i++ ) {
sum += Math.pow(str[i], len)
}
return sum === value ? true : false;
}
str에 문자열로 담아 각 자릿수를 len만큼 제곱해서 sum에 합쳐 value와 비교후 결과값 리턴
다른 사람의 풀이
function narcissistic( value ) {
return ('' + value).split('').reduce(function(p, c){
return p + Math.pow(c, ('' + value).length)
}, 0) == value;
}
toString이 아니라 ‘’을 더해서 문자열로 만드는 방법은 신기하네