Java Data Types - Hacker Rank Solution
Hello Friends, How are you? Today I am going to solve the HackerRank Java Data Types Problem with a very easy explanation. This is the 8th problem of Java on HackerRank. In this article, you will get more than three approaches to solving this problem. So let's start-
HackerRank Java Data Types - Problem Statement
Java has 8 primitive data types; char, boolean, byte, short, int, long, float, and double. For this exercise, we'll work with the primitives used to hold integer values (byte, short, int, and long):
- A byte is an 8-bit signed integer.
- A short is a 16-bit signed integer.
- An int is a 32-bit signed integer.
- A long is a 64-bit signed integer.
Given an input integer, you must determine which primitive data types are capable of properly storing that input.
To get you started, a portion of the solution is provided for you in the editor.
Input Format
The first line contains an integer, T, denoting the number of test cases.
Each test case, T, is comprised of a single line with an integer, n, which can be arbitrarily large or small.
Output Format
For each input variable n and appropriate primitive dataType, you must determine if the given primitives are capable of storing it. If yes, then print:
n can be fitted in: * dataType (code-box)
If there is more than one appropriate data type, print each one on its own line and order them by size (i.e.: byte < short < int < long).
If the number cannot be stored in one of the four aforementioned primitives, print the line:
n can't be fitted anywhere. (code-box)
5 -150 150000 1500000000 213333333333333333333333333333333333 -100000000000000 (code-box)
-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 (code-box)
-150 can be stored in a short, an int, or a long.
21333333333333333333333333333333333333333 is very large and is outside of the allowable range of values for the primitive data types discussed in this problem.
Java Data Types - Hacker Rank Solution
Approach I:
import java.util.*; import java.io.*; class Solution { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int t = scan.nextInt(); for (int i = 0; i < t; i++) { try { long x = scan.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"); } } catch (Exception e) { System.out.println(scan.next() + " can't be fitted anywhere."); } } scan.close(); } }
import java.util.*; import java.io.*; 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>=-128 && x<=127)System.out.println("* byte"); if(x>=-32768 && x<=32767)System.out.println("* short"); double int_cutoff = Math.pow(2,31); if(x>=-Math.pow(2,31) && x<=Math.pow(2,31)-1)System.out.println("* int"); double long_cutoff = Math.pow(2,63); if(x>=-Math.pow(2,63) && x<=Math.pow(2,63)-1)System.out.println("* long"); //Complete the code } catch(Exception e) { System.out.println(sc.next()+" can't be fitted anywhere."); } } } }
import java.util.*; import java.io.*; 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>=-128 && x<=127)System.out.println("* byte"); if(x>=-32768 && x<=32767)System.out.println("* short"); if(x>=-Math.pow(2,31) && x<=(Math.pow(2,31)-1)) System.out.println("* int"); if(x>=-Math.pow(2,63) && x<=(Math.pow(2,63)-1)) System.out.println("* long"); //Complete the code } catch(Exception e) { System.out.println(sc.next()+" can't be fitted anywhere."); } } } }
import java.util.*; import java.io.*; 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 { //BigInteger x=sc.nextBigInteger(); 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>=(-(Math.pow(2,63))) && x<=(Math.pow(2,63)-1))System.out.println("* long"); } catch(Exception e) { System.out.println(sc.next()+" can't be fitted anywhere."); } } } }
Disclaimer: The above Problem ( Java Data Types ) is generated by Hackerrank but the Solution is Provided by Code Solution. This tutorial is only for Educational and Learning purposes. Authority if any of the queries regarding this post or website fill the contact form.
I hope you have understood the solution to this HackerRank Problem. All these four solutions will pass all the test cases. Now visit Java Data Types HackerRank Problem and try to solve it again.
All the Best!