mi sono imbattuto in questo problema in javabat (http://www.javabat.com/prob/p183562):Un problema pratica java
Vogliamo fare una fila di mattoni che è lunga obiettivo pollici. Abbiamo un numero di piccoli mattoni (1 pollice ciascuno) e grandi mattoni (5 pollici ciascuno). Restituisce vero se è possibile effettuare l'obiettivo con scegliendo tra i mattoni indicati. Questo è un po 'più difficile di quanto sembri e può essere fatto senza alcun loop.
makeBricks (3, 1, 8) → veri
makeBricks (3, 1, 9) → falsi
makeBricks (3, 2, 10) → vero
sono arrivato fino a questa soluzione :
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;
}
Questo ha superato il test. Ma ho trovato un contro-esempio: makeBricks (10, 0, 10) -> true. La mia logica tornerà falsa. Come dovrei risolvere la mia logica? O c'è un modo migliore per farlo?
Questo è naturalmente ... uno dei problemi di pratica su un sito di apprendimento Java e Python ... codingbat.com –