Il tuo capo vuole che tu scriva codice in questo modo:
public static boolean isPowerOfTen(long input) {
return
input == 1L
|| input == 10L
|| input == 100L
|| input == 1000L
|| input == 10000L
|| input == 100000L
|| input == 1000000L
|| input == 10000000L
|| input == 100000000L
|| input == 1000000000L
|| input == 10000000000L
|| input == 100000000000L
|| input == 1000000000000L
|| input == 10000000000000L
|| input == 100000000000000L
|| input == 1000000000000000L
|| input == 10000000000000000L
|| input == 100000000000000000L
|| input == 1000000000000000000L;
}
(Martin Smith, su /codereview//a/117294/61929 )
che è efficiente e così, ma non è così divertente da scrivere. Poiché si desidera ridurre al minimo il numero di pressioni di tasti da eseguire, si scrive un programma o una funzione (o metodo) più breve che genera questa funzione per l'utente (o restituisce una stringa all'output). E poiché hai la tua tastiera unicode full range personalizzata con tutti i 120.737 tasti richiesti per tutti gli Unicode 8.0, contiamo i caratteri Unicode, anziché i tasti premuti. O byte, se la tua lingua non utilizza il codice sorgente Unicode.
Qualsiasi input che il tuo programma o funzione tiene conto del tuo punteggio, dal momento che ovviamente devi anche digitarlo.
Chiarimenti e modifiche:
- Rimossi 3 spazi finali dopo l'ultimo
}
- Rimosso un singolo spazio finale dopo
return
- Restituire una stringa di output da una funzione / metodo è ok
while(input%10==0) input/=10; return input == 1;
0==Math.log10(input)%1