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 vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…
Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…
En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta web usa cookies.
Ver comentarios