Clase 12

Temas: Problemas de práctica

Ejercicio de clase

Descripción

La descripción del problema original se encuentra aquíarrow-up-right. Para este ejercicio se ha simplificado un poco.

El problema consiste en repartir el canto de la canción de Happy Birthday entre las invitados de una fiesta. Si no recuerdas la canción de Happy Birthday es la siguiente (la festejada se llama Rujia):

Happy birthday to you
Happy birthday to you
Happy birthday to Rujia
Happy birthday to you

Cada persona debe cantar en orden al menos una palabra de la canción, así que si son 5 personas el reparto sería el siguiente:

Persona 1: Happy
Persona 2: birthday
Persona 3: to
Persona 4: you
Persona 5: Happy
Persona 1: birthday
Persona 2: to
Persona 3: you
Persona 4: Happy
Persona 5: birthday
Persona 1: to
Persona 2: Rujia
Persona 3: Happy
Persona 4: birthday
Persona 5: to
Persona 1: you

Observa que la canción contiene 16 palabras, así que si hay 17 personas o más la canción se debe cantar completa nuevamente hasta que todas las personas hayan podido cantar al menos una parte de la canción.

Entrada

La entrada consiste en un número N entero positivo menor a 200, que indica el número de personas invitadas.

Salida

Debes imprimir el reparto de la canción entre las personas como en el ejemplo anterior.

Ejemplo de entrada

Ejemplo de salida

Solución

Sabemos que la canción se debe cantar nuevamente si hay personas que no alcanzan a cantarla.

¿Cómo sabemos cuántas veces se debe cantar la canción completa?

Respuesta: Usando la división y el residuo.

Como son 16 palabras a cada persona le debe tocar al menos una palabra de la canción, si dividimos el número de personas entre el número de palabras nos indica cuántas veces podemos repetir la canción.

Si hay un residuo indica que hubo 1 o más personas que se quedan sin cantar, así que se debe repetirla una vez más. Veamos el código.

Tarea

  1. Repasar las divisiones o el operador módulo.

  2. Divide y obtiene el residuo los número del 0 al 20 entre 2, 3, 4, 5 y 6. Observa como se comporta el residuo.

  3. Encuentra otra forma y rescribe el código sin usar el operador módulo para rotar las palabras y las personas.

Last updated