Votre patron veut que vous écriviez du code comme ceci:
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, à /codereview//a/117294/61929 )
qui est efficace et donc, mais pas si amusant à taper. Étant donné que vous souhaitez minimiser le nombre de pressions de touches que vous devez effectuer, vous écrivez un programme ou une fonction (ou méthode) plus courte qui génère cette fonction pour vous (ou renvoie une chaîne à afficher). Et puisque vous avez votre propre clavier unicode pleine gamme personnalisé avec toutes les 120 737 touches requises pour l'ensemble de l'unicode 8.0, nous comptons les caractères unicode, au lieu des touches. Ou octets, si votre langue n'utilise pas de code source unicode.
Toute entrée de votre programme ou fonction compte pour votre score, car vous devez évidemment le saisir également.
Clarifications et modifications:
- Suppression de 3 espaces de fin après le dernier
}
- Suppression d'un seul espace de fin après
return
- Le retour d'une chaîne de sortie d'une fonction / méthode est correct
while(input%10==0) input/=10; return input == 1;
0==Math.log10(input)%1