En un ejercicio de Codewars me encontré con el problema de hacer una función que determine si un número es narcisista usando JavaScript.
Hice la función y me gustó tanto el algoritmo que decidí implementarlo en otros lenguajes de programación.
Bueno he puesto todo en una función. Te recomiendo leer:
Funciones flecha en JavaScript
Todos esos artículos te ayudarán a profundizar en este lenguaje, y también harán que entiendas mejor lo que aquí se ve. Dicho esto, comencemos.
La función queda así:
const esNarcisista = numero => {
const numeroComoCadena = numero.toString(),
longitudDelNumero = numeroComoCadena.length;
let suma = 0;
// Recorrer la cadena, carácter por carácter
for (let indice = 0; indice < longitudDelNumero; indice++) {
// Tomar el carácter que esté en la cadena en la posición del índice
// y convertirlo a entero
/*
Recordemos que para elevar un número a una potencia hacemos:
elevado = numero ** potencia;
Lo mismo que hacer:
elevado = Math.pow(numero, potencia);
Más info: https://parzibyte.me/blog/2018/04/20/elevar-numero-potencia-javascript/
*/ let cifraComoEntero = parseInt(numeroComoCadena[indice]),
numeroElevado = cifraComoEntero ** longitudDelNumero;
suma = suma + numeroElevado;
}
if (suma === numero) return true;
else return false;
}
Con JavaScript no presentamos tantos problemas a la hora de convertir tipos, usamos parseInt
y toString
sobre cualquier variable para obtener los resultados deseados. Esto es gracias a que es de tipado débil.
Por cierto, la explicación del algoritmo así como la solución en otros lenguajes está en otro post.
Como esta es una función, podemos llamar a la misma. Ya sea desde el navegador o en el lado del servidor con Node.JS
En mi caso la ejecutaré en node, y esta es la salida:
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.
Ver comentarios