número

Convertir entero a char en C

Hoy veremos la operación inversa a convertir un char a un entero en C, es decir, convertir un número entero a su representación en carácter. Por ejemplo, convertir 1 a ‘1’.

Esta conversión no funciona para números mayores a 9, porque ya no tienen un único dígito; para ello mejor podemos ver cómo convertir un número a cadena en C, en lugar de convertirlo a char.

Pero bueno, vamos allá y veamos cómo convertir un dígito entero a carácter en C.

Continue reading…

Cómo saber si un número es narcisista en Python

Introducción

Hoy veremos cómo implementar un algoritmo para saber si un entero es narcisista usando el lenguaje de programación Python.

Número narcisista en Python

Número narcisista en Python

Si no sabes cómo funciona este algoritmo o qué cosa es un número narcisista, te recomiendo leer esto.

Por cierto, recuerda que debes tener instalado el intérprete de Python. Si no sabes cómo, mira cómo instalar Python 3 y ponerlo en la PATH.

Continue reading…

Solución a algoritmo para determinar número narcisista en muchos lenguajes

Introducción

Función esNarcisista en CPP

Función esNarcisista en CPP

Un número narcisista es aquel que es igual a la suma de cada uno de sus dígitos elevados a la “n” potencia (donde “n” es el número de cifras del número). La metáfora de su nombre alude a lo mucho que parecen “quererse a sí mismos” estas cifras. Por ejemplo, el 153 es un número narcisista puesto que 13 + 53 + 33 = 1 + 125 + 27 = 153. Los primeros números narcisistas son: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407, 1634, 8208, 9474 y 54748.

Fuente: Muy interesante

Solución al algoritmo para determinar si tenemos un número narcisista

Pero bueno, no vamos a ver la definición de un número narcisista porque si vienes buscando el algoritmo significa que ya sabes lo que es. Pues bien, aquí pondré la solución al algoritmo (que al final de cuentas es muy simple) en múltiples lenguajes de programación.

Si quieres que resuelva el algoritmo en otro lenguaje de programación eres libre de dejar un comentario 🙂

Algoritmo

Sin importar el lenguaje de programación, lo que tenemos que hacer es tomar la longitud del número. Esa longitud será a la que elevaremos cada cifra.

Luego recorremos todo el número, tomamos una cifra, la elevamos a la potencia mencionada anteriormente y el resultado lo vamos sumando a otra variable.

Al final comprobamos si la suma y el número que recibimos son iguales; en caso de que sí entonces el número es narcisista.

Soluciones

Por cierto, he puesto mi mayor esfuerzo para solucionar este ejercicio. Sin embargo no prometo que sean los métodos más rápidos (hablando de rendimiento en milisegundos y esas cosas); puede haber mejores. Lo que sí prometo es que:

  • Los algoritmos funcionan perfectamente y resuelven el problema
  • Siguen las mejores prácticas para que sean entendibles por seres humanos

Dicho esto, aquí está la lista.

  1. Número narcisista en JavaScript
  2. Número narcisista en C#
  3. Algoritmo programado en el lenguaje de programación C++
  4. Ejercicio resuelto en PHP
  5. Solución en Java
  6. Determinarlo con Go & Golang
  7. Algoritmo en Python
  8. Número narcisista en Rust

Recuerda que puedes pedir la implementación en otro lenguaje usando los comentarios.

Número narcisista en C++

Introducción

Comenzaremos resolviendo el algoritmo para determinar si un número es narcisista en CPP o C++. Escribiremos una función que recibe un entero y regresa un booleano indicando si el número recibido es narcisista.

Narcisista en CPP

Narcisista en CPP

 

Nota: si quieres saber qué es un número narcisista, así como el algoritmo para determinarlo lee: Solución al algoritmo de número narcisista en muchos lenguajes de programación.

Continue reading…

Javascript: Número o moneda a texto / letras

Introducción

Cuando trabajamos con documentos contables, o con cosas que llevan una cantidad, a veces es necesario convertir los números a texto.

Esto pasa sobre todo cuando queremos convertir dinero a una representación legible, es decir, a letras o a texto.

Por ejemplo, convertir “123.00” a (al menos en México) “Ciento veintitrés pesos con cero centavos” o algo así.

Hoy me vi en la necesidad de ello y en lugar de escribir por mí mismo el código, busqué si alguien ya o había hecho, y así fue.

Número a letras

Como lo dije, esta función no es mía. Buscando en Google encontré este gist. Pero de donde realmente me basé para utilizar la función fue de un comentario hecho por un usuario llamado sapienman.

En fin, el código es este:

Ahora hay que ver su modo de uso.

Modo de uso

Pegamos todo el código de arriba en un script, y luego lo importamos en HTML. Por ejemplo…

Ahora podemos llamar a la función globalmente. Como primer parámetro pasamos el número, y como segundo parámetro un objeto con opciones:

  • plural: el plural de nuestra moneda. Por ejemplo, “dólares” o “pesos”.
  • singular: el singular de nuestra moneda. Por ejemplo “dólar” o “peso”
  • centPlural: el plural de las fracciones de nuestra moneda. En mi caso es “centavos”
  • centSingular: el singular de las fracciones de nuestra moneda. En mi caso es “centavo”

Así que, podemos llamarlo así:

Con este resultado:

Si no queremos estar pasando el segundo argumento cada vez que llamemos a la función, sigamos leyendo.

Modo de uso sin objeto

Pero si lo vamos a usar muchas veces, no vamos a llamarlo con el objeto con la configuración en cada momento. Mejor modificamos la función original 😉

Especificamente vamos a modificar las líneas 169, 170, 171 y 172. Como podemos ver, el autor asigna valores por defecto en caso de no pasar las opciones.

Así que cambiaríamos “PESOS CHILENOS” y todas las demás cosas por nuestra moneda. Después, sólo llamaríamos a la función así:

numeroALetras(200.58);

Ejemplo de implementación

He escrito un ejemplo para que veas cómo se usa, míralo: ejemplo de conversión de dinero a texto en JS.

Valores flotantes en elemento input type number de HTML

Introducción

Hoy estaba interactuando con un formulario, y noté que al poner un valor flotante o con punto decimal en un input de tipo number, salía una validación que decía que me pedía introducir sólo valores enteros.

Es decir, si introducía el 1.3 no era válido, pero si ponía 1 o 2 sí lo era.

Investigando me di cuenta de que esto tiene que ver con el atributo step del input.

Demostración del error

Para que el lector entienda, intentemos introducir un valor flotante en un input de tipo número en HTML.

Si utilizamos la validación que trae por defecto, saldrá un mensaje así:

Aquí un plunker:

Claro que esto no da problemas si sólo queremos valores enteros, pero ¿qué pasa si queremos permitir valores flotantes?

Solución

Todo esto se debe a un atributo llamado step. Step es como de cuánto en cuanto puede incrementar o reducirse el número del input.

Por defecto, step es 1; así que sólo permite saltar entre múltiplos de dicho valor.

Pero si ponemos step=”0.1″ podremos aumentar de 0.1 en 0.1, y así sucesivamente.

Para poder incrementar o reducir sin límites, podemos establecer step=”any” que se traduce como “cualquiera”.

<input step="any" type="number">

Aquí un plunker:

Con esto terminamos este post.

Obtener nombre del mes actual en PHP

Introducción

Este será un post muy sencillo. Veremos cómo obtener el nombre del mes en el que estamos actualmente, utilizando PHP.

Por ejemplo, el mes en el que escribo esto es en abril. ¿Pero cómo podemos hacer para que PHP lo sepa por nosotros?

Una solución fácil es obtener el número del mes actual, y utilizarlo como índice para tomar una cadena que está dentro de un arreglo.

Eso es justamente lo que haremos.

Obtener nombre del mes actual con PHP

Es simple. Para que esto funcione, nuestro servidor debe tener bien establecida la zona horaria. Aquí hay un post de cómo hacerlo con y sin Laravel.

Luego, llamamos a la función date, y le pasamos como argumento la cadena con la letra n. Eso devolverá un número del 1 al 12 (1 es enero, 12 es diciembre).

Finalmente utilizamos ese número como índice de un arreglo, pero recordemos que los arreglos comienzan en 0, así que lo único que tenemos que hacer es restar 1 a lo que devuelva date.

Si devuelve 12, y le restamos 1, será 11. Y 11 es el índice del último valor de nuestro arreglo.

Aquí el código de ejemplo:

Con eso tenemos para saber cuál es el nombre del mes en el que estamos en PHP. Por defecto los meses están en minúsculas, pero podemos cambiarlos como deseemos.

Sé que no es la solución más eficaz, pero sí es las más sencilla al menos para mí.