Narcisista en el lenguaje de programación Rust
Para probar un poco el lenguaje de programación Rust he implementado un algoritmo que ya se ha visto mucho por aquí, y es el del número narcisista.
Igualmente viendo este post se puede ver cómo es la función en distintos lenguajes de programación; para realizar una comparativa.
Leer el post que se cita al inicio, pues ahí se explica en términos generales lo que es un número narcisista. Si se desea compilar este ejemplo, se debe instalar Rust.
Sin tantos rodeos, aquí está el código:
/*
Algoritmo para determinar si un número es narcisista en Rust
@author parzibyte
*/fn main() {
let numeros = [1, 2, 153, 20, 371, 407, 201, 60];
for &numero in numeros.iter(){
println!("¿El número {} es narcisista? {}", numero, es_narcisista(numero));
}
}
fn es_narcisista(numero: u64) -> bool{
let numero_como_cadena = numero.to_string();
let longitud = numero_como_cadena.len() as u32;
let mut suma: u64 = 0;
for caracter in numero_como_cadena.chars(){
suma += caracter.to_digit(10).unwrap().pow(longitud) as u64;
}
return suma == numero;
}
Para convertir un número a cadena o string, se utiliza el método to_string()
(aquí la documentación). La longitud de una cadena es obtenida con .len()
.
Como en Rust ninguna variable se puede cambiar por defecto, al menos que sea especificado, se declara a suma
como mutable; pues ahí se almacenará cada resultado de elevar el número a una potencia.
El tipo de dato u64
es utilizado para evitar desbordamientos de variables; pues es el tipo de dato entero más grande en Rust: unsigned de 64 bits.
La función es expresiva: recibe un número entero de 64 bits sin signo, y se devuelve un booleano. Para probar se puede ver el código que está dentro de main
.
Primero se necesita descargar, copiar o transcribir el código en un archivo. Después se debe navegar hasta el directorio y ejecutar:
rustc narcisista.rs
Con ello, se va a generar un archivo llamado narcisista.exe (o tal vez tenga otro nombre en distintas plataformas) que se puede ejecutar como cualquier binario.
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