me encontré con este problema en javabat (http://www.javabat.com/prob/p183562):práctica java
Queremos hacer una fila de ladrillos que es pulgadas objetivo a largo. Tenemos un número de ladrillos pequeños (1 pulgada cada uno) y ladrillos grandes (5 pulgadas cada uno). Devuelve verdadero si es posible hacer el objetivo por eligiendo entre los ladrillos dados. Este es un poco más difícil de lo que parece y se puede hacer sin ningún bucle.
makeBricks (3, 1, 8) → verdaderos
makeBricks (3, 1, 9) → falsos
makeBricks (3, 2, 10) → verdadera
me ocurrió con esta solución :
public boolean makeBricks(int small, int big, int goal) {
if (goal > small + big * 5)
return false;
else if (goal % 5 == 0)
return goal/5 <= big;
else
return goal % 5 <= small;
}
Esto pasó la prueba. Pero encontré un contraejemplo yo mismo: makeBricks (10, 0, 10) -> true. Mi lógica devolverá falso. ¿Cómo debería arreglar mi lógica? ¿O hay una mejor manera de hacer esto?
Esto es por supuesto ... uno de los problemas de práctica en un sitio web de aprendizaje de Java y Python ... codingbat.com –