Después de algún tiempo de haber publicado el algoritmo para saber si un número es narcisista en varios lenguajes de programación es hora de implementarlo en el lenguaje C.

No podemos usar el código de C++ porque C++ no es compatible con C; aunque al revés sí se puede. Es decir, podemos usar código de C en CPP pero no podemos usar código de CPP en C.

Narcisista en C

En fin, veremos cómo implementar el algoritmo para determinar si un número es narcisista en C.

Saber si un número es narcisista en ANSI C

El algoritmo es el mismo aplicado para todas las demás implementaciones… convertimos el número a cadena, lo recorremos cifra por cifra y vamos elevando cada número. Hay algunas lecturas que te ayudarán a entender mejor todo el algoritmo:

Convertir número a cadena en C

Char a int en C

Booleanos en C

Elevar número a potencia en C

Por cierto, para sacar la longitud de un número pero sin convertirlo a cadena se utiliza el logaritmo en base 10 y luego se redondea hacia abajo; no me preguntes cómo funciona porque no sé, pero te da la longitud del número. Esto no interfiere con el algoritmo, porque al final el fin justifica los medios.

Una vez explicado un poco, vamos allá.

Función para saber si un entero es narcisista en C

Aquí está sin más vueltas:

See the gist on github.

La función recibe un número y devuelve un “booleano” si le queremos llamar así. Es decir, un 1 en caso de que el número sea narcisista y un 0 en caso de que no.

Esta función para saber si un número es narcisista en C utiliza algunas funciones matemáticas; por otro lado, la conversión de entero a cadena también necesita unas funciones. Por ello, debemos incluir stdio.h y math.h.

Para llamar a la función aquí dejo un ejemplo:

See the gist on github.

Recorremos un arreglo de números y en cada iteración comprobamos si es narcisista o no; imprimiendo los resultados por pantalla.

No te preocupes por compilar por ti mismo el código, puedes probarlo online.

Y listo, así de simple es. Igualmente se pueden cambiar los tipos de variables para poder trabajar con números más grandes, pero depende del problema que enfrentemos.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Compartir
Publicado por
parzibyte

Entradas recientes

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

4 horas hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

19 horas hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

20 horas hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

2 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

1 semana hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

1 semana hace

Esta web usa cookies.