Reto de programación I (fácil)
03/12/08
De vez en cuando no está mal algún que otro reto de programación, para poner en funcionamiento nuestra cabecita de informáticos.
Éste me lo planteó un buen amigo. No es que sea muy complicado, pero os entretendrá un rato. Si os lo propongo es porque resulta divertido programar cuando alguien te reta. Además aprendereis, estoy seguro, mientras intentais hallar una solución. Ahí va:
Construye el algoritmo necesario (en cualquier lenguaje de programación, o incluso pseudocódigo) para, dado un vector de elementos con una repetición, encontrar el elemento repetido. Hasta aquí no es complicado, pero lo bueno viene ahora: sólo puedes emplear un bucle.
Por supuesto que la solución no es única, más adelante postearé la que yo propongo (en lenguaje Java). Resolvedlo y enviadme vuestro algoritmo a sgm@yakiboo.net. Si es válido lo incluiré (junto con vuestro nombre) cuando llegue el momento de dar la solución.
NOTA: Este reto se resuelve en menos de 20 líneas. No os extendais más.

¡Suerte!.
Actualización: puedes ver aquí las soluciones y aquí el siguiente reto.
Puedes dejar un comentario, o referenciar este post desde tu sitio web.


Hay 6 comentarios en este post.
Elemento Encontrar_repetido (Elemento vector[ ]) {
int i = 0;j=0;
Elemento x = new Elemento();
for (i=0;i<=vector.length;i++) {
if (i == vector.length) {
j++;
i=0;
x=vector[j];
}
if (vector[i].equals(x))
return x;
}
}
Ahí tienes una chapuza Monda, como a ti te gustan, restaurando los invariantes del bucle jajajaj
Chic@s! no pongais vuestros algoritmos en comentarios, enviadmelos a sgm@yakiboo.net.
Los que ya me habeis escrito el programilla en un comentario no os preocupeis, que aunque no lo veais en el post (tengo moderación de comentarios), también lo publicaré cuando llegue el momento de dar las soluciones.
Parece que os ha gustado esto de los retos, plantearé más. En cuanto al cuándo pondré la solución aún no está claro, supongo que para fin de año. Un saludo a todos.
Luego deberias incrementar la dificultad, haciendo que sólo se pueda dar una pasada a la lista de vectores
Se vale cualquier lenguaje de programación?
Vale cualquier lenguaje, sí, incluso pseudocódigo. Aunque la idea es utilizar un lenguaje imperativo, es decir, nada tipo Prolog u otro lenguaje de tipo declarativo (que simplificarían mucho la tarea).
Y bueno, lo suyo sería que me mandaseis un código completamente probado (ya que yo no conozco la sintaxis de todos los lenguajes, ni tengo el tiempo necesario para probar y corregir vuestros programas) o, en su defecto, un pseudocódigo claro con el algoritmo.
Listo, resuelto. Pasa a mi blog también propongo retos interesantes.