Programación Desde Cero | Ejercicios de olimpiadas
Segadorfelix León@segadorfelixleon
def gusanolover(a,b,c):
posiciones_gusano=[b*i for i in range(int(a/b)+1)]
posiciones_hojas=[c*i for i in range(int(a/c)+1)]
comido=len(set(posiciones_gusano).intersection(set(posiciones_hojas)))
return comido
Primero la función recibe las variables, largo de rama (a), distancia que recorre para descansar el gusano (b), y la separación de hojas contiguas (una al lado de la otra) (c).
Luego por recursividad, genera dos arrays con las posiciones que ocupa en la rama el gusano, y las posiciones de las hojas.
Y finalmente compara para saber cuantas posiciones poseen en común, como conjuntos. Tomando en cuenta que siempre comparten la posición 0.
Muy buen ejercicio de practica.
Escribe una respuesta