Così sono andato in un colloquio di lavoro e mi hanno chiesto di scrivere un metodo di alimentazione rapido calcolo su un bordo bianco e questo è ciò che ho messo lìEfficienza del mio metodo di alimentazione Java?
public static double pow(double base, double power) {
double result = 1.0;
for(double x = 0; x < power; x++) {
result = result * base;
}
return result;
}
Questo ha funzionato e sono stati soddisfatti con esso, ma poi ho continuato a chiedermi come avrei potuto renderlo più efficiente e non ho avuto risposta. Quindi la mia domanda è: puoi essere più efficiente di questo o è solo una domanda per farmi sudare un po '? Sto pensando che potrebbe esserci qualche soluzione di trasferimento di bit diretta ma non sono esattamente sicuro, penso che si applicherebbe solo per le potenze di 2? Qualche idea?
* EDIT Scusa se ho dimenticato di dire che che la firma metodo è stato dato a me (i doppi come input) e mi è stato detto che non potevo utilizzare librerie matematiche built-in.
'risultato * = base;' è la prima cosa che viene in mente. – John3136
Non sono sicuro, probabilmente qualcosa con ricorsione o programmazione dinamica? –
@nickecarlo La ricorsione sarà un lavoro extra per questo. – Smit