Created
July 28, 2018 22:11
-
-
Save AbdullahMagat/153b444d7f197cd197c82313f7857949 to your computer and use it in GitHub Desktop.
Hackerrank Java Datatypes Solution
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.*; | |
import java.io.*; | |
import java.math.BigInteger; | |
class Solution{ | |
public static void main(String []argh) | |
{ | |
Scanner sc = new Scanner(System.in); | |
int t=sc.nextInt(); | |
for(int i=0;i<t;i++) | |
{ | |
try | |
{ | |
long x=sc.nextLong(); | |
System.out.println(x+" can be fitted in:"); | |
if(x>=(Byte.MIN_VALUE) && x<=Byte.MAX_VALUE)System.out.println("* byte"); | |
if(x>=(Short.MIN_VALUE) && x<=Short.MAX_VALUE)System.out.println("* short"); | |
if(x>=(Integer.MIN_VALUE) && x<=Integer.MAX_VALUE)System.out.println("* int"); | |
if(x>=(Long.MIN_VALUE) && x<=Long.MAX_VALUE)System.out.println("* long"); | |
//Another way. Be careful to take the interval of numbers. They are signed char so you should mines 1. for example byte is not in range of 2^8 and -2^8. it is signed char so it should be between 2^7 and 2^7-1. | |
// BigInteger y = BigInteger.valueOf(x); | |
// System.out.println(x+" can be fitted in:"); | |
// if(y.longValue()>=-128 && x<=127)System.out.println("* byte"); | |
// if(y.longValue()>=-(Math.pow(2,15)) && y.longValue()<=(Math.pow(2,15)-1))System.out.println("* short"); | |
// if(y.longValue()>=-(Math.pow(2,31)) && y.longValue()<=Math.pow(2,31)-1)System.out.println("* int"); | |
// if(y.longValue()>=-(Math.pow(2,63)) && y.longValue()<=Math.pow(2,63)-1)System.out.println("* long"); | |
} | |
catch(Exception e) | |
{ | |
System.out.println(sc.next()+" can't be fitted anywhere."); | |
} | |
} | |
} | |
} | |
thnx..
why should we assign value of x to big integer i have done without it but im facing an error that last test case is not working
Scanner sc = new Scanner(System.in);
int t=sc.nextInt();
for(int i=0;i<t;i++)
{
try
{
long x=sc.nextLong();
System.out.println(x+" can be fitted in:");
if(x>=-128 && x<=127)
{
System.out.println("* byte");
}
if (x>=-32768 && x<=32767)
{
System.out.println("* short");
}
if (x>=-2147483648 && x<=2147483647)
{
System.out.println("* int");
}
if (x>=-9223372036854775808L && x<=9223372036854775807L)
{
System.out.println("* long");
}
}
catch(Exception e)
{
System.out.println(sc.next()+" can't be fitted anywhere.");
}
}
Thank you
great
what is try and catch Exception e?
try()
The try block is used to specify a block of code that may throw an exception.
catch(Exception e)
Your 'catch' block will literally 'catch'' an exception object that was 'thrown' at some point during a 'try' block and store it in the 'e' variable Inside your catch block
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks