2017-11-22 5 views
-1

Also das ist der Code, den ich geschrieben habe: Das Fett druckt nicht aus, was ich ausdrucken möchte, das ist, wenn ein langer Datentyp eingegeben wird, dann der Satz "kann in einer langen passen" .Datentypen: Long

Ich versuchte mit der Math.pow, aber die Funktion funktioniert nicht, da dies für einen doppelten Datentyp ist. Irgendein Rat!

import java.util.*; 
import http://java.io.*; 

public class HackerRank { 
    public static void main(String[] args){ 
     Scanner in = new Scanner(System Resources and Information.); 
     int n = in.nextInt(); 
     for(int t = 0; t < n; t++){ 
      try { 
       long a = in.nextInt(); 
       if(a > -128 && a <= 127){ 
        System.out.println(a + " can be fitted in:\n*byte"); 
        System.out.println("*short"); 
        System.out.println("*int"); 
        System.out.println("*long"); 
       } else if(a > -32768 && a <= 32767) { 
        System.out.println(a + " can be fitted in:\n*short"); 
        System.out.println("*int"); 
        System.out.println("*long"); 
       } else if(a > Math.pow(-2, 31) && a < Math.pow(2, 31)) { 
        System.out.println(a + " can be fitted in:\n*int"); 
        System.out.println("*long"); 
       } else { 
        if (a >= -Math.pow(2, 63) && a < Math.pow(2, 63)-1); 
        System.out.println(a + " can be fitted in:\n*long"); 
       } 
      } catch (Exception e){ 
       System.out.println(in.next() + " can't be fitted anywhere."); 
      } 
     } 
    } 
} 
+0

Sie haben eine extra ";" am Ende der Zeile "if (a> = -Math.pow (2, 63) && a sSaroj

Antwort

0

Verwenden double statt long weil double Typ Variablen können nicht in long gespeichert werden.

double a = in.nextDouble();

0

Statt berechnen, die sich ergeben, versuchen Sie die follwing Konstanten:

Integer.MIN_VALUE 
Integer.MAX_VALUE 
Long.MIN_VALUE 
Long.MAX_VALUE 
Verwandte Themen