public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (input.hasNextLine()) {
BigInteger number = new BigInteger(input.nextLine());
int bitLength = number.bitlength();
if (bitLength <= Bytes.SIZE)
System.out.println("\u8211 byte");
if (bitLength <= Short.SIZE)
System.out.println("\u8211 short");
if (bitLength <= Int.SIZE)
System.out.println("\u8211 int");
if (bitLength <= Long.SIZE)
System.out.println("\u8211 long");
if (bitLength > Long.SIZE)
System.out.println(number + " can't be fitted anywhere.");
}
}
Zadanie: znaleźć odpowiedni typ danych wejściowych próbki: 5Znalezienie odpowiedniego Java Typ danych
-150
150000
1500000000
213333333333333333333333333333333333
-100000000000000
próbki wyjściowe:
-150 can be fitted in:
short
int
long
150000 can be fitted in:
int
long
1500000000 can be fitted in:
int
long
213333333333333333333333333333333333 can't be fitted anywhere.
-100000000000000 can be fitted in:
long
Błąd 1:
error: cannot find symbol
int bitLength = number.bitlength();
^
Błąd 2:
symbol: method bitlength()
location: variable number of type BigInteger
Błąd 3:
error: cannot find symbol
if (bitLength <= Int.SIZE)
^
symbol: variable Int
location: class Solution
'int liczba = input.nextInt();' nie może powrócić coś większego niż int – varren
Było '' bitlength' bitLength' nie, mam stałe to w mojej odpowiedzi. –
Nie publikuj tutaj całego rozwiązania, ponieważ ułatwi to innym osobom skopiowanie rozwiązania. Powinieneś zostawić tutaj wystarczająco dużo, aby rozwiązać jedną część problemu, tj. Twoje pierwotne pytanie, jak policzyć liczbę wymaganych bitów. –