Ya he implementado este algoritmo en otros lenguajes de programación (los más populares creo yo). Llegó el turno de PHP. Veamos una función para determinar si un número es narcisista.
Si no sabes qué es un número narcisista, lee: Algoritmo para número narcisista en múltiples lenguajes de programación.
Para terminar pronto, puse todo en una función. Recomiendo leer:
El código fuente es este:
<?php
function esNarcisista($numero){
$numeroComoCadena = strval($numero);
$longitudDelNumero = strlen($numeroComoCadena);
$suma = 0;
for($indice = 0; $indice < $longitudDelNumero; $indice++){
// Convertir carácter a entero
$caracterActual = $numeroComoCadena[$indice];
$cifraComoEntero = intval($caracterActual);
// Elevar ese carácter a la potencia dada por la longitud del número
$elevado = pow($cifraComoEntero, $longitudDelNumero);
// El resultado lo añadimos a $suma
$suma = $suma + $elevado;
}
// Comprobar si la suma al elevar es igual al número que recibimos
if($suma === $numero) return true;
else return false;
}
De nuevo el tipado débil nos ayuda.
Para realizar conversiones usamos simplemente intval y strval. Eso sí, para elevar un número usamos la función nativa llamada pow.
Es una función, por lo tanto podemos llamarla por valor como lo hacemos con otras funciones.
Aquí dejo la implementación que yo le di, en donde básicamente recorremos un arreglo de números enteros y comprobamos si cada número es o no narcisista.
Click aquí si quieres saber cómo ejecutar código PHP desde la terminal.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.
Ver comentarios