Un caracol se arrastra x pies por una pared durante el día. Después de todo el trabajo que hace durante el día, se detiene un momento ... ¡pero se duerme! A la mañana siguiente se despierta y descubre que se ha caído mientras duerme.Soluciones optimizadas para mi tarea
Si esto ocurre todos los días, ¿cuántas veces se arrastrará el caracol para cubrir n paredes de diferente altura?
He escrito una función para contar el número de pelos de punta del caracol como se muestra a continuación:
void count(int move_forward, int move_backward, int number_walls, int[] height)
{
int count = number_walls, diff = move_forward - move_backward;
while (number_walls--)
for (move_backward = move_forward; move_backward < height[number_walls]; move_backward += diff)
count++;
}
Está funcionando bien. Pero quería saber si hay alguna otra forma de resolver este problema para optimizar aún más la velocidad del programa.
(height-x)/(x-y) +1, no se requieren bucles – amit
@Jay, BTW - El consejo que recibió en la pregunta inicial sobre el uso de nombres de variables significativos es discutible en el contexto de bucles internos. Demasiados nombres demasiado largos hacen que su código sea tan ilegible como un montón de nombres crípticos de una y dos letras. Se trata de equilibrio. – dmckee
Un comentario más, siempre y cuando esté metiendo la nariz. El objetivo de este ejercicio puede ser mostrarte ese poco sentado y pensar por un rato que puedes resolver el problema de las paredes individuales desde 'O (altura)' (el forma en que lo estabas intentando) a 'O (1)' (la forma en que amit lo resuelve). – dmckee