Descubre el Número Más Grande: Un Algoritmo Sencillo y Eficaz
Problema
Diseña un algoritmo que imprima el número más grande de tres números dados.
Ejemplo 1
Entrada: 1, 2, 3
Salida: 9
Ejemplo 2
Entrada: 10, 15, 8
Salida: 15
Consejo: Antes de escribir código debes entender cómo se resuelve el problema. Piensa en cómo lo harías sin usar código. Realiza el algoritmo paso a paso en un papel o en el editor de código. Luego compara tu solución con la del artículo.
1. Análisis
Nos piden determinar cuál es el número más grande de tres números dados.
Pero, ¿qué pasa hay números iguales?
Si los tres números son iguales, imprimir cualquiera.
Si dos números son iguales, imprimir cualquiera que cumpla la condición de ser mayor que el tercer número.
2. Diseño del algoritmo
1. Idea de solución
La idea es simple, comparar los tres números entre sí para decidir el mayor.
2. Diseño
Usamos variable mayor
para guardar temporalmente el número más grande cada vez que hacemos una comparación. Al final, mayor
tendrá el resultado.
A, B, C = 1, 2, 3
mayor = infinito negativo
si A >= mayor entonces
mayor ← A
fin si
si B >= mayor entonces
mayor ← B
fin si
si C >= mayor entonces
mayor ← C
fin si
print(mayor)
3. Comprobación en seco
entrada | resultado |
1, 2, 3 | 3 |
10, 15, 8 | 15 |
4, 4, 4 | 4 |
4, 4, 5 | 5 |
-20, -5, -10 | -5 |
3. Codificación
A, B, C = 1, 2, 3
mayor = -float('inf')
if A >= mayor:
mayor = A
if B >= mayor:
mayor = B
if C >= mayor:
mayor = C
print(mayor)
Inicializamos mayor
como infinito negativo. Esto representa el valor menor que puede tener un número en Python. Cualquier número diferente a infinito negativo es superior a este. Así podemos actualizar el valor de mayor en cada comparación.
Comparamos cada número contra la variable mayor
. Actualizamos el valor de esta.
Al final, imprimimos mayor
.
4. Complejidad
Tiempo: O(1) constante
Por que no hay una colección que recorrer.
Espacio: O(1) constante
Por que no hay una estructura de datos adicional.
Conclusión
En conclusión, hemos diseñado un algoritmo sencillo y eficaz para determinar el número más grande entre tres números dados. A través de un análisis detallado y un diseño claro, hemos demostrado cómo comparar los números y actualizar una variable para encontrar el mayor. La implementación en código es directa y eficiente, con una complejidad constante tanto en tiempo como en espacio. Este enfoque no solo resuelve el problema de manera efectiva, sino que también es fácil de entender y aplicar en diversas situaciones.
Bibliografía
Joyanes Aguilar, L. (2008). Fundamentos de programación. Madrid: McGraw-Hill.
Subscribe to my newsletter
Read articles from Gilberto Ramirez directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Gilberto Ramirez
Gilberto Ramirez
I'm a software engineer with experience in web development. The main technologies I work with are .NET, React, and SQL. Personally, I prefer the backend. I'm keen on writing my dev journey. I think this is a great way to share and appropriate what I've learned.