Estoy haciendo problemas de este manual de programación, los resuelvo en javascript aunque son para C++.
Y he dado con este juego:
Decimos que una persona que asiste a una reunión es famosa si es conocida por todos los invitados pero no conoce a nadie. Si en una reunión hay k personas y sus nombres son p1, p2... pk, el reto que te planteamos es sencillo: encuentra a la persona famosa de la reunión, si es que existe. La única pregunta que puedes hacer, tantas veces como quieras, a cada invitado pk es "¿conoces a pj?", para cualquier j. ¿Te animas?
Escribe un programa que permita encontrar al famoso en un grupo de personas, si es que existe.
El reto, creo, no tiene mucha complicación: crear un array de invitados, elegir un famoso mediante random, dejarlo oculto bajo una variable (f por ejemplo), y bucle doble al canto: a cada grupo[k] se le "pregunta" si conoce a grupo[j]. En caso de que grupo[j]== f, la respuesta será true. Para los demás casos, respuesta true o false, aleatoria mediante random.
Se crea un nuevo array para recoger los valores afirmativos de cada grupo[k], y se comprueba cuál es el mayor.
Y ya está: se imprime algo como ('La persona con más conocidos de la fiesta es ' + grupo[m] + ', y el famoso oculto era ' + f)
Pero francamente esto es más bien ramplón para el nivel medio de los problemas en ese manual ¿Podéis darme otro enfoque del planteamiento inicial? Muchas gracias, un saludo