Twój szef chce, żebyś napisał taki kod:
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, na /codereview//a/117294/61929 )
co jest wydajne i tak, ale nie jest fajnie pisać. Ponieważ chcesz zminimalizować liczbę naciśnięć klawiszy, które musisz wykonać, piszesz krótszy program lub funkcję (lub metodę), która wyprowadza tę funkcję za Ciebie (lub zwraca ciąg do wyjścia). A ponieważ masz własną niestandardową klawiaturę z pełnym zakresem unicode ze wszystkimi 120 737 kluczami wymaganymi dla wszystkich unicode 8.0, zamiast naciśnięć klawiszy liczymy znaki unicode. Lub bajty, jeśli twój język nie używa kodu źródłowego Unicode.
Każde wejście, które Twój program lub funkcja bierze pod uwagę, liczy się do twojego wyniku, ponieważ oczywiście musisz to również wpisać.
Wyjaśnienia i zmiany:
- Usunięto 3 końcowe spacje po ostatnim
} - Usunięto pojedyncze spacje końcowe po
return - Zwracanie ciągu danych wyjściowych z funkcji / metody jest w porządku
while(input%10==0) input/=10; return input == 1;
0==Math.log10(input)%1